diff --git a/apps/cpman/api/src/test/java/org/onosproject/cpman/message/ControlMessageEventTest.java b/apps/cpman/api/src/test/java/org/onosproject/cpman/message/ControlMessageEventTest.java new file mode 100644 index 0000000000..c504f5ab20 --- /dev/null +++ b/apps/cpman/api/src/test/java/org/onosproject/cpman/message/ControlMessageEventTest.java @@ -0,0 +1,54 @@ +/* + * Copyright 2016 Open Networking Laboratory + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.onosproject.cpman.message; + +import org.junit.Test; +import org.onosproject.cpman.ControlMessage; +import org.onosproject.cpman.DefaultControlMessage; +import org.onosproject.event.AbstractEventTest; + +import java.util.ArrayList; +import java.util.Collection; + +import static org.onosproject.cpman.ControlMessage.Type.*; + +/** + * Tests of the control message event. + */ +public class ControlMessageEventTest extends AbstractEventTest { + + private ControlMessage createControlMessage(ControlMessage.Type type) { + return new DefaultControlMessage(type, 0L, 0L, 0L, 0L); + } + + private Collection createControlMessages() { + Collection controlMessages = new ArrayList<>(); + controlMessages.add(createControlMessage(INBOUND_PACKET)); + controlMessages.add(createControlMessage(OUTBOUND_PACKET)); + return controlMessages; + } + + @Override + @Test + public void withoutTime() { + Collection cms = createControlMessages(); + long before = System.currentTimeMillis(); + ControlMessageEvent event = + new ControlMessageEvent(ControlMessageEvent.Type.STATS_UPDATE, cms); + long after = System.currentTimeMillis(); + validateEvent(event, ControlMessageEvent.Type.STATS_UPDATE, cms, before, after); + } +} \ No newline at end of file diff --git a/apps/cpman/api/src/test/java/org/onosproject/cpman/message/ControlMessageServiceAdaptor.java b/apps/cpman/api/src/test/java/org/onosproject/cpman/message/ControlMessageServiceAdaptor.java new file mode 100644 index 0000000000..23976c40f9 --- /dev/null +++ b/apps/cpman/api/src/test/java/org/onosproject/cpman/message/ControlMessageServiceAdaptor.java @@ -0,0 +1,29 @@ +/* + * Copyright 2016 Open Networking Laboratory + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.onosproject.cpman.message; + +/** + * Test adapter for control message service. + */ +public class ControlMessageServiceAdaptor implements ControlMessageService { + @Override + public void addListener(ControlMessageListener listener) { + } + + @Override + public void removeListener(ControlMessageListener listener) { + } +} diff --git a/apps/cpman/api/src/test/java/org/onosproject/cpman/message/DefaultControlMessageTest.java b/apps/cpman/api/src/test/java/org/onosproject/cpman/message/DefaultControlMessageTest.java new file mode 100644 index 0000000000..1bc114f85d --- /dev/null +++ b/apps/cpman/api/src/test/java/org/onosproject/cpman/message/DefaultControlMessageTest.java @@ -0,0 +1,53 @@ +/* + * Copyright 2016 Open Networking Laboratory + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.onosproject.cpman.message; + +import org.junit.Test; +import org.onosproject.cpman.DefaultControlMessage; + +import static org.hamcrest.Matchers.is; +import static org.junit.Assert.assertThat; +import static org.onlab.junit.ImmutableClassChecker.assertThatClassIsImmutableBaseClass; +import static org.onosproject.cpman.ControlMessage.Type.INBOUND_PACKET; + +/** + * Unit tests for the default control message class. + */ +public class DefaultControlMessageTest { + + /** + * Checks that the DefaultControlMessage class is immutable but can be + * inherited from. + */ + @Test + public void testImmutability() { + assertThatClassIsImmutableBaseClass(DefaultControlMessage.class); + } + + /** + * Tests creation of a DefaultControlMessage using a regular constructor. + */ + @Test + public void testBasic() { + final DefaultControlMessage cm = + new DefaultControlMessage(INBOUND_PACKET, 0L, 1L, 2L, 3L); + assertThat(cm.type(), is(INBOUND_PACKET)); + assertThat(cm.load(), is(0L)); + assertThat(cm.rate(), is(1L)); + assertThat(cm.count(), is(2L)); + assertThat(cm.timeStamp(), is(3L)); + } +}