Ejemplo n.º 1
0
  @SuppressWarnings("unchecked")
  @Test
  public void testHardwareWithImageIdPredicateOnlyAcceptsImageWhenLocationNull() {

    Hardware hardware =
        new HardwareBuilder()
            .id("hardwareId")
            .supportsImage(ImagePredicates.idEquals(getProviderFormatId("imageId")))
            .build();

    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(hardware));
    Provider<TemplateOptions> optionsProvider = createMock(Provider.class);
    Provider<TemplateBuilder> templateBuilderProvider = createMock(Provider.class);
    TemplateBuilder defaultTemplate = createMock(TemplateBuilder.class);

    expect(optionsProvider.get()).andReturn(new TemplateOptions());

    replay(defaultTemplate, optionsProvider, templateBuilderProvider);

    TemplateBuilderImpl template =
        createTemplateBuilder(
            null, locations, images, hardwares, region, optionsProvider, templateBuilderProvider);

    template.imageId(getProviderFormatId("imageId")).build();

    verify(defaultTemplate, optionsProvider, templateBuilderProvider);
  }
Ejemplo n.º 2
0
  @SuppressWarnings("unchecked")
  public void testHardwareProfilesMustBePresentWhenQuerying() {
    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());
    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.os64Bit(true).build();
      fail("Expected IllegalStateException");
    } catch (IllegalStateException e) {
      assertEquals(e.getMessage(), "no hardware profiles present!");
    }

    verify(defaultOptions, optionsProvider, templateBuilderProvider);
  }
Ejemplo n.º 3
0
  /**
   * Resolves images using a default TemplateBuilder, optionally applying a customizer to that
   * TemplateBuilder where the customizer may e.g. apply an imageChooser
   */
  @SuppressWarnings("unchecked")
  protected void doTestResolveImagesWithTemplateBuilderCustomizer(
      Supplier<Set<? extends Image>> inputImages,
      Function<TemplateBuilderImpl, TemplateBuilderImpl> templateBuilderPerTestCustomizer,
      Image expectedBest) {

    Hardware hardware = new HardwareBuilder().id("hardwareId").build();

    Supplier<Set<? extends Location>> locations =
        Suppliers.<Set<? extends Location>>ofInstance(ImmutableSet.<Location>of(region));
    Supplier<Set<? extends Hardware>> hardwares =
        Suppliers.<Set<? extends Hardware>>ofInstance(ImmutableSet.<Hardware>of(hardware));
    Provider<TemplateOptions> optionsProvider = createMock(Provider.class);
    Provider<TemplateBuilder> templateBuilderProvider = createMock(Provider.class);
    TemplateBuilder defaultTemplate = createMock(TemplateBuilder.class);

    replay(defaultTemplate, optionsProvider, templateBuilderProvider);

    TemplateBuilderImpl template =
        createTemplateBuilder(
            null,
            locations,
            inputImages,
            hardwares,
            region,
            optionsProvider,
            templateBuilderProvider);
    template = templateBuilderPerTestCustomizer.apply(template);

    assertEquals(template.resolveImage(hardware, inputImages.get()), expectedBest);

    verify(defaultTemplate, optionsProvider, templateBuilderProvider);
  }
Ejemplo n.º 4
0
  @SuppressWarnings("unchecked")
  @Test
  public void testArchWins() {

    Hardware hardware = new HardwareBuilder().id("hardwareId").build();

    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, image64bit));
    Supplier<Set<? extends Hardware>> hardwares =
        Suppliers.<Set<? extends Hardware>>ofInstance(ImmutableSet.<Hardware>of(hardware));
    Provider<TemplateOptions> optionsProvider = createMock(Provider.class);
    Provider<TemplateBuilder> templateBuilderProvider = createMock(Provider.class);
    TemplateBuilder defaultTemplate = createMock(TemplateBuilder.class);

    expect(optionsProvider.get()).andReturn(new TemplateOptions());

    replay(defaultTemplate, optionsProvider, templateBuilderProvider);

    TemplateBuilderImpl template =
        createTemplateBuilder(
            null, locations, images, hardwares, region, optionsProvider, templateBuilderProvider);

    assertEquals(template.smallest().osArchMatches("X86_32").build().getImage(), image);

    verify(defaultTemplate, optionsProvider, templateBuilderProvider);
  }
Ejemplo n.º 5
0
  @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);
  }
Ejemplo n.º 6
0
  @SuppressWarnings("unchecked")
  @Test
  public void testDefaultLocationWithNoOptionsNoSuchElement() {
    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.imageId("region/imageId2").build();
      fail("Expected NoSuchElementException");
    } catch (NoSuchElementException e) {
      // make sure big data is not in the exception message
      assertEquals(e.getMessage(), "imageId(region/imageId2) not found");
    }

    verify(defaultOptions, optionsProvider, templateBuilderProvider);
  }
Ejemplo n.º 7
0
  @SuppressWarnings("unchecked")
  @Test
  public void testSuppliedLocationAndOptions() {
    TemplateOptions from = provideTemplateOptions();

    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());
    Supplier<Set<? extends Hardware>> hardwares =
        Suppliers.<Set<? extends Hardware>>ofInstance(ImmutableSet.<Hardware>of());
    Provider<TemplateOptions> optionsProvider = createMock(Provider.class);
    Provider<TemplateBuilder> templateBuilderProvider = createMock(Provider.class);

    expect(optionsProvider.get()).andReturn(from).atLeastOnce();

    replay(optionsProvider);
    replay(templateBuilderProvider);

    TemplateBuilderImpl template =
        createTemplateBuilder(
            null, locations, images, hardwares, region, optionsProvider, templateBuilderProvider);

    try {
      template.imageId("foo").options(provideTemplateOptions()).locationId("location").build();
      fail("Expected NoSuchElementException");
    } catch (NoSuchElementException e) {

    }

    verify(optionsProvider);
    verify(templateBuilderProvider);
  }
Ejemplo n.º 8
0
  @SuppressWarnings("unchecked")
  @Test
  public void testSuppliedImageLocationWiderThanDefault() {
    TemplateOptions from = provideTemplateOptions();

    Hardware hardware =
        new HardwareBuilder()
            .id("hardwareId")
            .supportsImage(ImagePredicates.idEquals(image.getId()))
            .build();

    Supplier<Set<? extends Location>> locations =
        Suppliers.<Set<? extends Location>>ofInstance(ImmutableSet.<Location>of(provider, 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(hardware));

    Provider<TemplateOptions> optionsProvider = createMock(Provider.class);
    Provider<TemplateBuilder> templateBuilderProvider = createMock(Provider.class);
    TemplateOptions defaultOptions = createMock(TemplateOptions.class);
    expect(optionsProvider.get()).andReturn(from).atLeastOnce();

    replay(defaultOptions, optionsProvider, templateBuilderProvider);

    TemplateBuilderImpl template =
        createTemplateBuilder(
            null, locations, images, hardwares, region, optionsProvider, templateBuilderProvider);

    assertEquals(
        template.imageId(image.getId()).locationId(provider.getId()).build().getLocation(), region);

    verify(defaultOptions, optionsProvider, templateBuilderProvider);
  }
Ejemplo n.º 9
0
 public void testMultiMaxNull() {
   // we rely on checking nulls in some Orderings, so assert it also does what we expect
   // (unfortunately can't use ImmutableList here as that doesn't allow nulls)
   Iterable<String> values = Arrays.asList("1", "3", null, "2", "2");
   assertEquals(
       TemplateBuilderImpl.multiMax(Ordering.natural().nullsLast(), values),
       Arrays.asList((Object) null));
 }
Ejemplo n.º 10
0
  @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);
  }
Ejemplo n.º 11
0
  @SuppressWarnings("unchecked")
  @Test
  public void testOptionsUsesDefaultTemplateBuilder() {
    TemplateOptions options = provideTemplateOptions();
    TemplateOptions from = provideTemplateOptions();

    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);
    TemplateBuilder defaultTemplate = createMock(TemplateBuilder.class);

    expect(templateBuilderProvider.get()).andReturn(defaultTemplate);
    expect(defaultTemplate.options(from)).andReturn(defaultTemplate);
    expect(defaultTemplate.build()).andReturn(null);
    expect(optionsProvider.get()).andReturn(from).atLeastOnce();

    replay(defaultTemplate);
    replay(defaultLocation);
    replay(optionsProvider);
    replay(templateBuilderProvider);

    TemplateBuilderImpl template =
        createTemplateBuilder(
            null,
            locations,
            images,
            hardwares,
            defaultLocation,
            optionsProvider,
            templateBuilderProvider);

    template.options(options).build();

    verify(defaultTemplate);
    verify(defaultLocation);
    verify(optionsProvider);
    verify(templateBuilderProvider);
  }
Ejemplo n.º 12
0
  @SuppressWarnings("unchecked")
  @Test
  public void testHardwareIdNullsHypervisor() {
    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.hypervisorMatches("OpenVZ");

    assertEquals(template.hardwareId, null);
    assertEquals(template.hypervisor, "OpenVZ");

    template.hardwareId("myid");
    assertEquals(template.hardwareId, "myid");
    assertEquals(template.hypervisor, null);

    verify(defaultLocation);
    verify(optionsProvider);
    verify(templateBuilderProvider);
  }
Ejemplo n.º 13
0
  @SuppressWarnings("unchecked")
  @Test
  public void testDefaultLocationWithOptions() {
    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(image));
    Supplier<Set<? extends Hardware>> hardwares =
        Suppliers.<Set<? extends Hardware>>ofInstance(
            ImmutableSet.<Hardware>of(createMock(Hardware.class)));
    Location defaultLocation = createMock(Location.class);
    Provider<TemplateOptions> optionsProvider = createMock(Provider.class);
    TemplateOptions from = provideTemplateOptions();
    Provider<TemplateBuilder> templateBuilderProvider = createMock(Provider.class);

    expect(optionsProvider.get()).andReturn(from);

    replay(defaultLocation, optionsProvider, templateBuilderProvider);

    TemplateBuilderImpl template =
        createTemplateBuilder(
            null,
            locations,
            images,
            hardwares,
            defaultLocation,
            optionsProvider,
            templateBuilderProvider);

    try {
      template.imageId("region/ami").options(provideTemplateOptions()).build();
      fail("Expected NoSuchElementException");
    } catch (NoSuchElementException e) {

    }

    verify(defaultLocation, optionsProvider, templateBuilderProvider);
  }
Ejemplo n.º 14
0
  @SuppressWarnings("unchecked")
  @Test
  public void testHardwareWithImageIdPredicateOnlyDoesntImage() {

    Hardware hardware =
        new HardwareBuilder()
            .id("hardwareId")
            .supportsImage(ImagePredicates.idEquals("differentImageId"))
            .build();

    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(hardware));
    Provider<TemplateOptions> optionsProvider = createMock(Provider.class);
    Provider<TemplateBuilder> templateBuilderProvider = createMock(Provider.class);
    TemplateBuilder defaultTemplate = createMock(TemplateBuilder.class);

    expect(optionsProvider.get()).andReturn(new TemplateOptions());

    replay(defaultTemplate, optionsProvider, templateBuilderProvider);

    TemplateBuilderImpl template =
        createTemplateBuilder(
            image, locations, images, hardwares, region, optionsProvider, templateBuilderProvider);
    try {
      template.imageId(getProviderFormatId("imageId")).build();
      fail("Expected NoSuchElementException");
    } catch (NoSuchElementException e) {
      // make sure message is succinct
      assertEquals(
          e.getMessage(),
          "no hardware profiles support images matching params: idEquals(differentImageId)");
      verify(defaultTemplate, optionsProvider, templateBuilderProvider);
    }
  }
Ejemplo n.º 15
0
 public void testMultiMaxNulls() {
   Iterable<String> values = Arrays.asList("1", "3", null, "2", "2", null);
   assertEquals(
       TemplateBuilderImpl.multiMax(Ordering.natural().nullsLast(), values),
       Arrays.asList((Object) null, null));
 }
Ejemplo n.º 16
0
 public void testMultiMax2() {
   // check with max buried in the middle
   Iterable<String> values = ImmutableList.of("1", "3", "2", "2");
   assertEquals(TemplateBuilderImpl.multiMax(Ordering.natural(), values), ImmutableList.of("3"));
 }
Ejemplo n.º 17
0
 public void testMultiMax1() {
   Iterable<String> values = ImmutableList.of("1", "2", "2", "3");
   assertEquals(TemplateBuilderImpl.multiMax(Ordering.natural(), values), ImmutableList.of("3"));
 }