| package net.onrc.onos.core.newintent; |
| |
| import com.hazelcast.core.EntryEvent; |
| import com.hazelcast.core.EntryListener; |
| import net.onrc.onos.api.newintent.Intent; |
| import net.onrc.onos.api.newintent.IntentId; |
| import net.onrc.onos.core.datastore.hazelcast.DummySharedCollectionsService; |
| import org.junit.After; |
| import org.junit.Before; |
| import org.junit.Test; |
| |
| import java.util.concurrent.CountDownLatch; |
| |
| /** |
| * Suites of test of {@link IntentMap}. |
| */ |
| public class IntentMapTest { |
| |
| private final IntentId id1 = new IntentId(1); |
| private DummySharedCollectionsService service; |
| private IntentMap<Intent> sut; |
| |
| @Before |
| public void setUp() { |
| service = new DummySharedCollectionsService(); |
| sut = new IntentMap<>("test", Intent.class, service); |
| } |
| |
| @After |
| public void tearDown() { |
| sut.destroy(); |
| } |
| |
| /** |
| * Tests if listener is invoked when add/remove/update occurs. |
| * |
| * @throws InterruptedException if interrupt occurs |
| */ |
| @Test(timeout = 1000) |
| public void testListener() throws InterruptedException { |
| final CountDownLatch latch = new CountDownLatch(3); |
| |
| sut.addListener(new EntryListener<IntentId, Intent>() { |
| @Override |
| public void entryAdded(EntryEvent<IntentId, Intent> event) { |
| latch.countDown(); |
| } |
| |
| @Override |
| public void entryRemoved(EntryEvent<IntentId, Intent> event) { |
| latch.countDown(); |
| } |
| |
| @Override |
| public void entryUpdated(EntryEvent<IntentId, Intent> event) { |
| latch.countDown(); |
| } |
| |
| @Override |
| public void entryEvicted(EntryEvent<IntentId, Intent> event) { |
| } |
| }); |
| |
| sut.put(id1, new TestIntent(id1)); |
| sut.put(id1, new TestIntent(id1)); |
| sut.remove(id1); |
| |
| latch.await(); |
| } |
| } |