@Test public void testTagSnapshot() throws DataProviderException { Snapshot snap = dataProvider.tagSnapshot(branchSnapshot, Optional.of("name"), Optional.of("message")); assertEquals(branchSnapshot, snap); verify(notifier, times(1)).snapshotTagged(snap); verify(notifier, only()).snapshotTagged(snap); Mockito.reset(notifier); snap = dataProvider.tagSnapshot(branchSnapshot, Optional.of("name2"), Optional.of("message")); assertEquals(branchSnapshot, snap); verify(notifier, times(1)).synchronised(); verify(notifier, only()).synchronised(); try { dataProvider.tagSnapshot(branchSnapshot, Optional.of("name4"), Optional.of("message")); fail("Exception should happen"); } catch (DataProviderException e) { assertNotNull(e.getMessage()); } verify(notifier, times(1)).synchronised(); verify(notifier, only()).synchronised(); Mockito.reset(notifier); snap = dataProvider.tagSnapshot(branchSnapshot, Optional.of("name3"), Optional.of("message")); assertNull(snap); verify(notifier, never()).synchronised(); }