Search in sources :

Example 11 with ProductReferenceResolver

use of com.commercetools.sync.products.helpers.ProductReferenceResolver in project commercetools-sync-java by commercetools.

the class CategoryReferenceResolverTest method resolveCategoryReferences_WithIdOnCategoryReference_ShouldNotResolveReference.

@Test
void resolveCategoryReferences_WithIdOnCategoryReference_ShouldNotResolveReference() {
    // preparation
    final CategoryService mockCategoryService = mockCategoryService(emptySet(), null);
    final ProductDraftBuilder productBuilder = getBuilderWithRandomProductType().categories(asSet(ResourceIdentifier.ofId("existing-id"), null));
    final ProductReferenceResolver productReferenceResolver = createProductReferenceResolver(mockCategoryService);
    // test and assertion
    assertThat(productReferenceResolver.resolveCategoryReferences(productBuilder).toCompletableFuture()).matches(f -> !f.isCompletedExceptionally() || f.isCancelled()).isCompletedWithValueMatching(resolvedDraft -> Objects.equals(resolvedDraft.getCategories(), productBuilder.getCategories()));
}
Also used : ReferenceResolutionException(com.commercetools.sync.commons.exceptions.ReferenceResolutionException) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) ProductSyncMockUtils.getMockProductService(com.commercetools.sync.products.ProductSyncMockUtils.getMockProductService) Collections.singleton(java.util.Collections.singleton) Map(java.util.Map) ProductSyncMockUtils.getMockCustomObjectService(com.commercetools.sync.products.ProductSyncMockUtils.getMockCustomObjectService) SphereClient(io.sphere.sdk.client.SphereClient) InventorySyncMockUtils.getMockSupplyChannel(com.commercetools.sync.inventories.InventorySyncMockUtils.getMockSupplyChannel) Collectors.toSet(java.util.stream.Collectors.toSet) Category(io.sphere.sdk.categories.Category) Set(java.util.Set) CategoryService(com.commercetools.sync.services.CategoryService) Collectors(java.util.stream.Collectors) String.format(java.lang.String.format) Objects(java.util.Objects) Test(org.junit.jupiter.api.Test) List(java.util.List) ProductSyncOptionsBuilder(com.commercetools.sync.products.ProductSyncOptionsBuilder) SphereInternalUtils.asSet(io.sphere.sdk.utils.SphereInternalUtils.asSet) ProductSyncOptions(com.commercetools.sync.products.ProductSyncOptions) Mockito.mock(org.mockito.Mockito.mock) ResourceIdentifier(io.sphere.sdk.models.ResourceIdentifier) IntStream(java.util.stream.IntStream) ArgumentMatchers.anySet(org.mockito.ArgumentMatchers.anySet) InventorySyncMockUtils.getMockChannelService(com.commercetools.sync.inventories.InventorySyncMockUtils.getMockChannelService) CategoryOrderHints(io.sphere.sdk.products.CategoryOrderHints) CategorySyncMockUtils.getMockCategory(com.commercetools.sync.categories.CategorySyncMockUtils.getMockCategory) ProductSyncMockUtils.getBuilderWithRandomProductType(com.commercetools.sync.products.ProductSyncMockUtils.getBuilderWithRandomProductType) CompletableFuture(java.util.concurrent.CompletableFuture) ProductReferenceResolver(com.commercetools.sync.products.helpers.ProductReferenceResolver) HashSet(java.util.HashSet) ProductSyncMockUtils.getMockTaxCategoryService(com.commercetools.sync.products.ProductSyncMockUtils.getMockTaxCategoryService) ProductSyncMockUtils.getMockProductTypeService(com.commercetools.sync.products.ProductSyncMockUtils.getMockProductTypeService) SphereException(io.sphere.sdk.models.SphereException) ProductSyncMockUtils.getMockStateService(com.commercetools.sync.products.ProductSyncMockUtils.getMockStateService) ProductSyncMockUtils.getMockCustomerService(com.commercetools.sync.products.ProductSyncMockUtils.getMockCustomerService) ProductDraftBuilder(io.sphere.sdk.products.ProductDraftBuilder) Nonnull(javax.annotation.Nonnull) Collections.emptySet(java.util.Collections.emptySet) FAILED_TO_RESOLVE_REFERENCE(com.commercetools.sync.products.helpers.ProductReferenceResolver.FAILED_TO_RESOLVE_REFERENCE) Mockito.when(org.mockito.Mockito.when) ExecutionException(java.util.concurrent.ExecutionException) TimeUnit(java.util.concurrent.TimeUnit) MockUtils.getMockTypeService(com.commercetools.sync.commons.MockUtils.getMockTypeService) CustomerGroupService(com.commercetools.sync.services.CustomerGroupService) CATEGORIES_DO_NOT_EXIST(com.commercetools.sync.products.helpers.ProductReferenceResolver.CATEGORIES_DO_NOT_EXIST) MockUtils.mockCategoryService(com.commercetools.sync.commons.MockUtils.mockCategoryService) Collections(java.util.Collections) BLANK_KEY_VALUE_ON_RESOURCE_IDENTIFIER(com.commercetools.sync.commons.helpers.BaseReferenceResolver.BLANK_KEY_VALUE_ON_RESOURCE_IDENTIFIER) ProductReferenceResolver(com.commercetools.sync.products.helpers.ProductReferenceResolver) CategoryService(com.commercetools.sync.services.CategoryService) ProductSyncMockUtils.getMockTaxCategoryService(com.commercetools.sync.products.ProductSyncMockUtils.getMockTaxCategoryService) MockUtils.mockCategoryService(com.commercetools.sync.commons.MockUtils.mockCategoryService) ProductDraftBuilder(io.sphere.sdk.products.ProductDraftBuilder) Test(org.junit.jupiter.api.Test)

Example 12 with ProductReferenceResolver

use of com.commercetools.sync.products.helpers.ProductReferenceResolver in project commercetools-sync-java by commercetools.

the class CategoryReferenceResolverTest method resolveCategoryReferences_WithEmptyKeyOnCategoryReference_ShouldNotResolveReference.

@Test
void resolveCategoryReferences_WithEmptyKeyOnCategoryReference_ShouldNotResolveReference() {
    // preparation
    final CategoryService mockCategoryService = mockCategoryService(emptySet(), null);
    final ProductDraftBuilder productBuilder = getBuilderWithRandomProductType().categories(singleton(ResourceIdentifier.ofKey("")));
    final ProductReferenceResolver productReferenceResolver = createProductReferenceResolver(mockCategoryService);
    // test and assertion
    assertThat(productReferenceResolver.resolveCategoryReferences(productBuilder)).failsWithin(1, TimeUnit.SECONDS).withThrowableOfType(ExecutionException.class).withCauseExactlyInstanceOf(ReferenceResolutionException.class).withMessageContaining(format("Failed to resolve 'category' resource identifier on ProductDraft with " + "key:'%s'. Reason: %s", productBuilder.getKey(), BLANK_KEY_VALUE_ON_RESOURCE_IDENTIFIER));
}
Also used : ProductReferenceResolver(com.commercetools.sync.products.helpers.ProductReferenceResolver) ReferenceResolutionException(com.commercetools.sync.commons.exceptions.ReferenceResolutionException) CategoryService(com.commercetools.sync.services.CategoryService) ProductSyncMockUtils.getMockTaxCategoryService(com.commercetools.sync.products.ProductSyncMockUtils.getMockTaxCategoryService) MockUtils.mockCategoryService(com.commercetools.sync.commons.MockUtils.mockCategoryService) ProductDraftBuilder(io.sphere.sdk.products.ProductDraftBuilder) Test(org.junit.jupiter.api.Test)

Example 13 with ProductReferenceResolver

use of com.commercetools.sync.products.helpers.ProductReferenceResolver in project commercetools-sync-java by commercetools.

the class TaxCategoryReferenceResolverTest method setup.

/**
 * Sets up the services and the options needed for reference resolution.
 */
@BeforeEach
void setup() {
    taxCategoryService = getMockTaxCategoryService(TAX_CATEGORY_ID);
    final ProductSyncOptions syncOptions = ProductSyncOptionsBuilder.of(mock(SphereClient.class)).build();
    referenceResolver = new ProductReferenceResolver(syncOptions, getMockProductTypeService(PRODUCT_TYPE_ID), mock(CategoryService.class), getMockTypeService(), getMockChannelService(getMockSupplyChannel(CHANNEL_ID, CHANNEL_KEY)), mock(CustomerGroupService.class), taxCategoryService, getMockStateService(STATE_ID), getMockProductService(PRODUCT_ID), getMockCustomObjectService(CUSTOM_OBJECT_ID), getMockCustomerService(CUSTOMER_ID));
}
Also used : ProductReferenceResolver(com.commercetools.sync.products.helpers.ProductReferenceResolver) ProductSyncOptions(com.commercetools.sync.products.ProductSyncOptions) BeforeEach(org.junit.jupiter.api.BeforeEach)

Aggregations

ProductReferenceResolver (com.commercetools.sync.products.helpers.ProductReferenceResolver)13 MockUtils.mockCategoryService (com.commercetools.sync.commons.MockUtils.mockCategoryService)10 ProductSyncMockUtils.getMockTaxCategoryService (com.commercetools.sync.products.ProductSyncMockUtils.getMockTaxCategoryService)10 CategoryService (com.commercetools.sync.services.CategoryService)10 ProductDraftBuilder (io.sphere.sdk.products.ProductDraftBuilder)10 Test (org.junit.jupiter.api.Test)10 ProductSyncOptions (com.commercetools.sync.products.ProductSyncOptions)9 ReferenceResolutionException (com.commercetools.sync.commons.exceptions.ReferenceResolutionException)8 ResourceIdentifier (io.sphere.sdk.models.ResourceIdentifier)7 HashSet (java.util.HashSet)7 CategorySyncMockUtils.getMockCategory (com.commercetools.sync.categories.CategorySyncMockUtils.getMockCategory)6 MockUtils.getMockTypeService (com.commercetools.sync.commons.MockUtils.getMockTypeService)6 BLANK_KEY_VALUE_ON_RESOURCE_IDENTIFIER (com.commercetools.sync.commons.helpers.BaseReferenceResolver.BLANK_KEY_VALUE_ON_RESOURCE_IDENTIFIER)6 InventorySyncMockUtils.getMockChannelService (com.commercetools.sync.inventories.InventorySyncMockUtils.getMockChannelService)6 InventorySyncMockUtils.getMockSupplyChannel (com.commercetools.sync.inventories.InventorySyncMockUtils.getMockSupplyChannel)6 ProductSyncMockUtils.getBuilderWithRandomProductType (com.commercetools.sync.products.ProductSyncMockUtils.getBuilderWithRandomProductType)6 ProductSyncMockUtils.getMockCustomObjectService (com.commercetools.sync.products.ProductSyncMockUtils.getMockCustomObjectService)6 ProductSyncMockUtils.getMockCustomerService (com.commercetools.sync.products.ProductSyncMockUtils.getMockCustomerService)6 ProductSyncMockUtils.getMockProductService (com.commercetools.sync.products.ProductSyncMockUtils.getMockProductService)6 ProductSyncMockUtils.getMockProductTypeService (com.commercetools.sync.products.ProductSyncMockUtils.getMockProductTypeService)6