@Nonnull public Collection<? extends MetadataItemHolder<MetadataItemMock>> loadMetadataItems (final DataObject dataObject, final FindOption ... options) { final String name = dataObject.getName(); if (name.contains("noitem")) { return Collections.emptyList(); } final MetadataItemMock item = MetadataItemEnhancer.createEnhancedItem(new MetadataItemMock()); item.setName("the name"); return Collections.singletonList(new MetadataItemHolderMock<MetadataItemMock>(item, getName(), "Mock", TimestampProvider.Locator.findTimestampProvider().getTimestamp())); } }
@Nonnull public Collection<? extends MetadataItemHolder<TIFF>> loadMetadataItems (final DataObject dataObject, final FindOption ... options) { final String name = dataObject.getPrimaryFile().getNameExt(); if (name.contains("bad")) { return Collections.emptyList(); } final TIFF tiff = new TIFF(); tiff.setArtist("..."); // set a property to make it "available" return Collections.singletonList(new DirectoryMetadataItemHolder<TIFF>(tiff, getName(), "Mock", TimestampProvider.Locator.findTimestampProvider().getTimestamp())); } }
@Test public void testBeanIsAvailableChange() { stub(bean.isAvailable()).toReturn(false); holder.addPropertyChangeListener(listener); final TimestampProviderMock timestampProvider = (TimestampProviderMock)TimestampProvider.Locator.findTimestampProvider(); // Test a bean property change that makes bean.isAvailable() to transition from false to true timestampProvider.setTimestamp(TIMESTAMP1); assertFalse(bean.isAvailable()); stub(bean.isAvailable()).toReturn(true); holder.propertyChangeListener.propertyChange(new MyPropertyChangeEvent(bean, "stringProperty", null, "newValue")); // Test a bean property change that makes bean.isAvailable() to transition from true to false timestampProvider.setTimestamp(TIMESTAMP2); assertTrue(bean.isAvailable()); stub(bean.isAvailable()).toReturn(false); holder.propertyChangeListener.propertyChange(new MyPropertyChangeEvent(bean, "stringProperty", "newValue", null)); // Test a bean property change that makes bean.isAvailable() to stay false timestampProvider.setTimestamp(TIMESTAMP3); assertFalse(bean.isAvailable()); holder.propertyChangeListener.propertyChange(new MyPropertyChangeEvent(bean, "stringProperty", null, null)); final InOrder inOrder = inOrder(listener); inOrder.verify(listener).propertyChange(refEq(new MyPropertyChangeEvent(holder, "latestModificationTime", null, TIMESTAMP1))); inOrder.verify(listener).propertyChange(refEq(new MyPropertyChangeEvent(holder, "available", false, true))); inOrder.verify(listener).propertyChange(refEq(new MyPropertyChangeEvent(holder, "latestModificationTime", TIMESTAMP1, TIMESTAMP2))); inOrder.verify(listener).propertyChange(refEq(new MyPropertyChangeEvent(holder, "available", true, false))); inOrder.verify(listener).propertyChange(refEq(new MyPropertyChangeEvent(holder, "latestModificationTime", TIMESTAMP2, TIMESTAMP3))); verifyNoMoreInteractions(listener); } }
@Test public void testServiceInstalled() { assertTrue(TimestampProvider.Locator.findTimestampProvider() instanceof TimestampProviderImpl); } }
@Test public void testLocator() { final TimestampProvider timestampProvider1 = TimestampProvider.Locator.findTimestampProvider(); assertNotNull(timestampProvider1); final TimestampProvider timestampProvider2 = TimestampProvider.Locator.findTimestampProvider(); assertNotNull(timestampProvider2); assertSame(timestampProvider1, timestampProvider2); } }