@SuppressWarnings("unchecked") @Test public void testDefaultLocationWithUnmatchedPredicateExceptionMessageAndLocationNotCalled() { Supplier<Set<? extends Location>> locations = Suppliers.<Set<? extends Location>>ofInstance(ImmutableSet.<Location>of(region)); Supplier<Set<? extends Image>> images = Suppliers.<Set<? extends Image>>ofInstance(ImmutableSet.<Image>of(image)); Supplier<Set<? extends Hardware>> hardwares = Suppliers.<Set<? extends Hardware>>ofInstance( ImmutableSet.<Hardware>of(createMock(Hardware.class))); Provider<TemplateOptions> optionsProvider = createMock(Provider.class); Provider<TemplateBuilder> templateBuilderProvider = createMock(Provider.class); TemplateOptions defaultOptions = createMock(TemplateOptions.class); expect(optionsProvider.get()).andReturn(defaultOptions); replay(defaultOptions, optionsProvider, templateBuilderProvider); TemplateBuilderImpl template = createTemplateBuilder( null, locations, images, hardwares, region, optionsProvider, templateBuilderProvider); try { template.imageDescriptionMatches("notDescription").build(); fail("Expected NoSuchElementException"); } catch (NoSuchElementException e) { // make sure big data is not in the exception message assertEquals( e.getMessage(), "no image matched predicate: And(nullEqualToIsParentOrIsGrandparentOfCurrentLocation(),imageDescription(notDescription))"); } verify(defaultOptions, optionsProvider, templateBuilderProvider); }
@SuppressWarnings("unchecked") @Test public void testImageIdNullsEverythingElse() { Supplier<Set<? extends Location>> locations = Suppliers.<Set<? extends Location>>ofInstance(ImmutableSet.<Location>of()); Supplier<Set<? extends Image>> images = Suppliers.<Set<? extends Image>>ofInstance(ImmutableSet.<Image>of()); Supplier<Set<? extends Hardware>> hardwares = Suppliers.<Set<? extends Hardware>>ofInstance(ImmutableSet.<Hardware>of()); Location defaultLocation = createMock(Location.class); Provider<TemplateOptions> optionsProvider = createMock(Provider.class); Provider<TemplateBuilder> templateBuilderProvider = createMock(Provider.class); replay(defaultLocation); replay(optionsProvider); replay(templateBuilderProvider); TemplateBuilderImpl template = createTemplateBuilder( null, locations, images, hardwares, defaultLocation, optionsProvider, templateBuilderProvider); template.imageDescriptionMatches("imageDescriptionMatches"); template.imageNameMatches("imageNameMatches"); template.imageVersionMatches("imageVersionMatches"); template.osDescriptionMatches("osDescriptionMatches"); template.osFamily(OsFamily.CENTOS); template.osArchMatches("osArchMatches"); assertEquals(template.osArch, "osArchMatches"); assertEquals(template.imageDescription, "imageDescriptionMatches"); assertEquals(template.imageName, "imageNameMatches"); assertEquals(template.imageVersion, "imageVersionMatches"); assertEquals(template.osDescription, "osDescriptionMatches"); assertEquals(template.osFamily, OsFamily.CENTOS); assertEquals(template.imageId, null); template.imageId("myid"); assertEquals(template.osArch, null); assertEquals(template.imageDescription, null); assertEquals(template.imageName, null); assertEquals(template.imageVersion, null); assertEquals(template.osDescription, null); assertEquals(template.osFamily, null); assertEquals(template.imageId, "myid"); verify(defaultLocation); verify(optionsProvider); verify(templateBuilderProvider); }