@Override public Void apply(JobCatalogListener listener) { listener.onAddJob(_addedJob); return null; } }
@Override public Void apply(JobCatalogListener listener) { listener.onDeleteJob(_deletedJobURI, _deletedJobVersion); return null; } }
@Override public Void apply(JobCatalogListener listener) { listener.onUpdateJob(_updatedJob); return null; } }
.onDeleteJob(Mockito.eq(js2.getUri()), Mockito.eq(js2.getVersion())); Mockito.doThrow(new RuntimeException("injected l2 failure")).when(l2).onUpdateJob(Mockito.eq(js1_2)); Mockito.doThrow(new RuntimeException("injected l3 failure")).when(l3).onAddJob(Mockito.eq(js2)); ll.onDeleteJob(js2.getUri(), js2.getVersion()); Mockito.verify(l1).onAddJob(Mockito.eq(js1_1)); Mockito.verify(l1).onAddJob(Mockito.eq(js2)); Mockito.verify(l1).onUpdateJob(Mockito.eq(js1_2)); Mockito.verify(l1).onDeleteJob(Mockito.eq(js2.getUri()), Mockito.eq(js2.getVersion())); Mockito.verify(l2).onAddJob(Mockito.eq(js1_1)); Mockito.verify(l2).onAddJob(Mockito.eq(js2)); Mockito.verify(l2).onUpdateJob(Mockito.eq(js1_2)); Mockito.verify(l2).onDeleteJob(Mockito.eq(js2.getUri()), Mockito.eq(js2.getVersion())); Mockito.verify(l3).onAddJob(Mockito.eq(js1_1)); Mockito.verify(l3).onAddJob(Mockito.eq(js2)); Mockito.verify(l3).onUpdateJob(Mockito.eq(js1_2)); Mockito.verify(l3).onDeleteJob(Mockito.eq(js2.getUri()), Mockito.eq(js2.getVersion()));
@Test public void testCallbacks() throws Exception { InMemoryJobCatalog cat = new InMemoryJobCatalog(); cat.startAsync(); cat.awaitRunning(1, TimeUnit.SECONDS); JobCatalogListener l = Mockito.mock(JobCatalogListener.class); JobSpec js1_1 = JobSpec.builder("test:job1").withVersion("1").build(); JobSpec js1_2 = JobSpec.builder("test:job1").withVersion("2").build(); JobSpec js1_3 = JobSpec.builder("test:job1").withVersion("3").build(); JobSpec js2 = JobSpec.builder("test:job2").withVersion("1").build(); cat.put(js1_1); cat.addListener(l); cat.put(js1_2); cat.put(js2); cat.put(js1_3); cat.remove(js2.getUri()); cat.remove(new URI("test:dummy_job")); cat.removeListener(l); cat.remove(js1_3.getUri()); Mockito.verify(l).onAddJob(Mockito.eq(js1_1)); Mockito.verify(l).onUpdateJob(Mockito.eq(js1_2)); Mockito.verify(l).onAddJob(Mockito.eq(js2)); Mockito.verify(l).onUpdateJob(Mockito.eq(js1_3)); Mockito.verify(l).onDeleteJob(Mockito.eq(js2.getUri()), Mockito.eq(js2.getVersion())); Mockito.verifyNoMoreInteractions(l); cat.stopAsync(); cat.awaitTerminated(1, TimeUnit.SECONDS); }
Mockito.verify(l).onAddJob(Mockito.eq(js1_1)); Mockito.verify(l).onUpdateJob(Mockito.eq(js1_2)); Mockito.verify(l).onDeleteJob(Mockito.eq(js1_2.getUri()), Mockito.eq(js1_2.getVersion()));
@edu.umd.cs.findbugs.annotations.SuppressWarnings( value = "UR_UNINIT_READ_CALLED_FROM_SUPER_CONSTRUCTOR", justification = "Uninitialized variable has been checked.") @Override public void addListener(JobCatalogListener jobListener) { if (this.jobs == null) { return; } for (Map.Entry<URI, JobSpec> entry : this.jobs.entrySet()) { jobListener.onAddJob(entry.getValue()); } }
@Override public Void apply(JobCatalogListener listener) { listener.onDeleteJob(_deletedJobURI, _deletedJobVersion); return null; } }
@Override public Void apply(JobCatalogListener listener) { listener.onUpdateJob(_updatedJob); return null; } }
return null; }).when(l).onAddJob(Mockito.any(JobSpec.class)); Mockito.doAnswer(new Answer<Void>() { @Override return null; }).when(l).onUpdateJob(Mockito.any(JobSpec.class)); return null; }).when(l).onDeleteJob(Mockito.any(URI.class), Mockito.anyString());
@Override public Void apply(JobCatalogListener listener) { listener.onAddJob(_addedJob); return null; } }
return null; }).when(l).onAddJob(Mockito.any(JobSpec.class)); Mockito.doAnswer(new Answer<Void>() { @Override return null; }).when(l).onUpdateJob(Mockito.any(JobSpec.class)); return null; }).when(l).onDeleteJob(Mockito.any(URI.class), Mockito.anyString());
@edu.umd.cs.findbugs.annotations.SuppressWarnings( value = "UR_UNINIT_READ_CALLED_FROM_SUPER_CONSTRUCTOR", justification = "Uninitialized variable has been checked.") @Override public void addListener(JobCatalogListener jobListener) { if (this.jobs == null) { return; } for (Map.Entry<URI, JobSpec> entry : this.jobs.entrySet()) { jobListener.onAddJob(entry.getValue()); } }