@Test public void testItemCallCategoryExists() { ProductItemCategory category2 = ProductItemCategory.builder() .id(12) .categoryCode("new category") .build(); ProductItem item1 = item.toBuilder().categories(ImmutableSet.of(category2)).build(); ProductItemPrice price = ProductItemPrice.builder().id(1) .categories(category) .item(item1) .build(); ProductItem newItem = item().apply(price); assertEquals(newItem.getCategories(), ImmutableSet.of(category2)); }
.blockDevices(ContainerVirtualGuestConfigurationOption.builder() .productItemPrice(ProductItemPrice.builder() .hourlyRecurringFee(0) .recurringFee("0") .item(ProductItem.builder().description("25 GB (SAN)").build()) .build()) .template(VirtualGuest.builder() .blockDevices(VirtualGuestBlockDevice.builder() .memory(ContainerVirtualGuestConfigurationOption.builder() .productItemPrice(ProductItemPrice.builder() .hourlyRecurringFee(.02f) .recurringFee("14") .item(ProductItem.builder().description("1 GB").build()) .build()) .template(VirtualGuest.builder().maxMemory(1024).build()) .build()) .networkComponents(ContainerVirtualGuestConfigurationOption.builder() .productItemPrice(ProductItemPrice.builder() .hourlyRecurringFee(0) .recurringFee("0") .item(ProductItem.builder().description("10 Mbps Public & Private Networks").build()) .build()) .template(VirtualGuest.builder().networkComponents( VirtualGuestNetworkComponent.builder() .operatingSystems(ContainerVirtualGuestConfigurationOption.builder() .productItemPrice(ProductItemPrice.builder() .hourlyRecurringFee(0)
.hourlyRecurringFee(0) .recurringFee("0") .item(ProductItem.builder().description("CentOS - Latest").build()) .build()) .template(VirtualGuest.builder().operatingSystemReferenceCode("CENTOS_LATEST").build()) .build(); ContainerVirtualGuestConfigurationOption osInvalid = ContainerVirtualGuestConfigurationOption.builder() .productItemPrice(ProductItemPrice.builder() .hourlyRecurringFee(0.131f) .recurringFee("90.63") .item(ProductItem.builder().description("Windows Server 2012 Datacenter Edition (64bit)").build()) .build()) .template(VirtualGuest.builder().build()) .build();
@Override @Consumes(MediaType.APPLICATION_JSON) public ProductOrder expected() { Set<ProductItemPrice> prices = ImmutableSet.<ProductItemPrice>builder() .add(ProductItemPrice.builder().id(1962).itemId(1045).recurringFee(0F).hourlyRecurringFee(0F).build()) .add(ProductItemPrice.builder().id(1644).itemId(861).recurringFee(0F).hourlyRecurringFee(0F).build()) .add(ProductItemPrice.builder().id(905).itemId(503).recurringFee(0F).hourlyRecurringFee(0F).build()) .add(ProductItemPrice.builder().id(274).itemId(188).recurringFee(0F).hourlyRecurringFee(0F).build()) .add(ProductItemPrice.builder().id(1800).itemId(439).recurringFee(0F).hourlyRecurringFee(0F).build()) .add(ProductItemPrice.builder().id(21).itemId(15).recurringFee(0F).hourlyRecurringFee(0F).build()) .add(ProductItemPrice.builder().id(1639).itemId(865).recurringFee(0F).hourlyRecurringFee(0F).build()) .add(ProductItemPrice.builder().id(1693).itemId(884).recurringFee(0F).hourlyRecurringFee(0F).build()) .add(ProductItemPrice.builder().id(55).itemId(49).recurringFee(0F).hourlyRecurringFee(0F).build()) .add(ProductItemPrice.builder().id(57).itemId(51).recurringFee(0F).hourlyRecurringFee(0F).build()) .add(ProductItemPrice.builder().id(58).itemId(52).recurringFee(0F).hourlyRecurringFee(0F).build()) .add(ProductItemPrice.builder().id(420).itemId(309).recurringFee(0F).hourlyRecurringFee(0F).build()) .add(ProductItemPrice.builder().id(418).itemId(307).recurringFee(0F).hourlyRecurringFee(0F).build()) .build(); ProductOrder order = ProductOrder.builder() .quantity(0) .packageId(46) .useHourlyPricing(true) .prices(prices) .build(); return order; }
@BeforeMethod public void setup() { toHardware = Guice.createInjector(new AbstractModule() { @Override protected void configure() { bindProperties(binder(), new SoftLayerProviderMetadata().getDefaultProperties()); } }).getInstance(ProductItemsToHardware.class); cpuItem = ProductItem.builder() .id(1) .description("2 x 2.0 GHz Cores") .capacity(2F) .categories(ProductItemCategory.builder().categoryCode("guest_core").build()) .prices(ProductItemPrice.builder().id(123).build()) .build(); ramItem = ProductItem.builder().id(2).description("2GB ram").capacity(2F).categories( ProductItemCategory.builder().categoryCode("ram").build()).prices( ProductItemPrice.builder().id(456).build()).build(); volumeItem = ProductItem.builder().id(3).description("100 GB (SAN)").capacity(100F).prices( ProductItemPrice.builder().id(789).build()).categories( ProductItemCategory.builder().categoryCode("guest_disk0").build()).build(); }
@Test public void testCorrect() { ProductItemPrice price1 = ProductItemPrice.builder().id(100).build(); ProductItemPrice price2 = ProductItemPrice.builder().id(101).build(); VirtualGuest guest = VirtualGuest.builder().hostname("myhost") .domain("mydomain") .build(); ProductOrder order = ProductOrder.builder() .packageId(123) .location("loc456") .quantity(99) .useHourlyPricing(true) .prices(ImmutableSet.of(price1,price2)) .virtualGuests(guest) .build(); String expected = String.format(FORMAT.replaceAll("'","\""), 123,"loc456",100,101,"myhost","mydomain",99,true); HttpRequest req = binder.bindToRequest(request, order); assertEquals(req.getPayload().getRawContent(), expected); } }
@Test public void testHardwareWithTwoDisks() { ProductItem localVolumeItem = ProductItem.builder().id(4).description("25 GB").capacity(25F).prices( ProductItemPrice.builder().id(987).build()).categories( ProductItemCategory.builder().categoryCode("guest_disk1").build()).build(); Hardware hardware = toHardware.apply(ImmutableSet.of(cpuItem, ramItem, volumeItem,localVolumeItem)); List<? extends Volume> volumes = hardware.getVolumes(); assertEquals(2, volumes.size()); Volume volume = volumes.get(0); assertEquals(100F, volume.getSize()); assertEquals(Volume.Type.SAN, volume.getType()); assertEquals(true, volume.isBootDevice()); Volume volume1 = volumes.get(1); assertEquals(25F, volume1.getSize()); assertEquals(Volume.Type.LOCAL, volume1.getType()); assertEquals(false, volume1.isBootDevice()); } }
public Builder toBuilder() { return builder().fromProductItemPrice(this); }
@Test public void testConversion() { for( String description : operatingSystems ) { ProductItem item = ProductItem.builder() .description(description) .prices(ProductItemPrice.builder().id(1234).build()) .build(); Image i = new ProductItemToImage().apply(item); OperatingSystem os = i.getOperatingSystem(); assertNotNull(os); assertNotNull(os.getFamily()); assertFalse(os.getFamily().equals(OsFamily.UNRECOGNIZED)); assertNotNull(os.getVersion()); } }
public static Builder builder() { return new Builder(); }
public T categories(ProductItemCategory... in) { return categories(ImmutableSet.copyOf(in)); }
public static Builder builder() { return new Builder(); }
private Iterable<ProductItemPrice> getPrices(Template template) { Builder<ProductItemPrice> result = ImmutableSet.builder(); int imageId = Integer.parseInt(template.getImage().getId()); result.add(ProductItemPrice.builder().id(imageId).build()); Iterable<String> hardwareIds = Splitter.on(",").split(template.getHardware().getId()); for (String hardwareId : hardwareIds) { int id = Integer.parseInt(hardwareId); result.add(ProductItemPrice.builder().id(id).build()); } ProductItem uplinkItem = find(productPackageSupplier.get().getItems(), and(capacity(portSpeed), categoryCode("port_speed"))); result.add(get(uplinkItem.getPrices(), 0)); result.addAll(prices); return result.build(); }
private Iterable<ProductItemPrice> getPrices(Template template) { Builder<ProductItemPrice> result = ImmutableSet.builder(); int imageId = Integer.parseInt(template.getImage().getId()); result.add(ProductItemPrice.builder().id(imageId).build()); Iterable<String> hardwareIds = Splitter.on(",").split(template.getHardware().getId()); for (String hardwareId : hardwareIds) { int id = Integer.parseInt(hardwareId); result.add(ProductItemPrice.builder().id(id).build()); } ProductItem uplinkItem = find(productPackageSupplier.get().getItems(), and(capacity(portSpeed), categoryCode("port_speed"))); result.add(get(uplinkItem.getPrices(), 0)); result.addAll(prices); return result.build(); }
public Builder toBuilder() { return builder().fromProductItemPrice(this); }
public static Builder builder() { return new Builder(); }
public Builder toBuilder() { return builder().fromProductItemPrice(this); }
public T categories(ProductItemCategory... in) { return categories(ImmutableSet.copyOf(in)); }
@Test public void testCompletelyUnknown() { ProductItem item = ProductItem.builder() .description("This fails to match anything!!!") .prices(ProductItemPrice.builder().id(1234).build()) .build(); Image i = new ProductItemToImage().apply(item); OperatingSystem os = i.getOperatingSystem(); assertNotNull(os); assertEquals(OsFamily.UNRECOGNIZED, os.getFamily()); assertNull(os.getVersion()); assertFalse(os.is64Bit()); }
@Test public void testUbuntu() { ProductItem item = ProductItem.builder() .description("Ubuntu Linux 10.04 LTS Lucid Lynx - Minimal Install (64 bit)") .prices(ProductItemPrice.builder().id(1234).build()) .build(); Image i = new ProductItemToImage().apply(item); OperatingSystem os = i.getOperatingSystem(); assertNotNull(os); assertEquals(OsFamily.UBUNTU, os.getFamily()); assertEquals("10.04",os.getVersion()); assertTrue(os.is64Bit()); }