### Question:
ProductDimensions { public static ProductCustomAttribute createCustomAttribute( ProductDimensionType productDimensionType, @Nullable String attributeValue) { Preconditions.checkNotNull(productDimensionType, "ProductDimensionType is required when creating a ProductCustomAttribute"); ProductCustomAttribute productCustomAttribute = new ProductCustomAttribute(); productCustomAttribute.setType(productDimensionType); productCustomAttribute.setValue(attributeValue); return productCustomAttribute; } private  ProductDimensions(); static ProductType createType(ProductDimensionType productDimensionType,
      @Nullable String productTypeValue); static ProductCanonicalCondition createCanonicalCondition(
      @Nullable ProductCanonicalConditionCondition condition); static ProductBiddingCategory createBiddingCategory(
      ProductDimensionType productDimensionType, @Nullable Long biddingCategoryId); static ProductOfferId createOfferId(@Nullable String offerId); static ProductBrand createBrand(@Nullable String brand); static ProductCustomAttribute createCustomAttribute(
      ProductDimensionType productDimensionType, @Nullable String attributeValue); static ProductChannel createChannel(@Nullable ShoppingProductChannel channel); static ProductChannelExclusivity createChannelExclusivity(
      @Nullable ShoppingProductChannelExclusivity channelExclusivity);  }### Answer:
@Test public void testCreateCustomAttribute() { ProductCustomAttribute attribute = ProductDimensions.createCustomAttribute( ProductDimensionType.CUSTOM_ATTRIBUTE_2, STRING_VALUE); assertEquals(ProductDimensionType.CUSTOM_ATTRIBUTE_2, attribute.getType()); assertEquals(STRING_VALUE, attribute.getValue()); }
@Test public void testCreateCustomAttribute_nullAttributeLevel_fails() { thrown.expect(NullPointerException.class); ProductDimensions.createCustomAttribute(null, STRING_VALUE); }