예제 #1
0
        public async Task ExecutePublish(string tenantUrl)
        {
            var request = new PublishMerchandiseRequest
            {
                Hostname         = tenantUrl,
                ClearUnusedCache = false,
                PromoteOnSuccess = true,
                PurgeOnSuccess   = false
            };
            var publishResponse = await _client.PublishMerchandise.Publish(request);

            //validate publish has done properly
        }
예제 #2
0
        public async Task CreateOfferingProductAndPublish()
        {
            string platformIdentifier = PlatformId;
            string platformName       = ServiceConstants.FMPPlatformName;
            string platformHostName   = PlatformHost;
            string productSku         = "SKU300";
            string productExternalId  = ProductExternalId;
            string offeringFullName   = "Put the cloth";
            string offeringCategory   = "externalDev";
            IntegrationsWebAppClient integrationsClientV2 = new IntegrationsWebAppClient(ServiceConstants.IntegrationsAPIUrl, platformName);
            IntegrationsWebAppClient integrationsClientV1 = new IntegrationsWebAppClient(ServiceConstants.IntegrationsAPIUrl, platformIdentifier);

            PostProductRequest createProductRequest = new PostProductRequest
            {
                Identifier         = productExternalId,
                AlternateSkus      = null,
                BrandSku           = "4WW3274",
                Cost               = 11,
                DisplayProductCode = productSku,
                IsOcm              = false,
                IsPurchaseable     = true,
                Name               = "product test name",
                OemRelationships   = new List <ProductOem>
                {
                    new ProductOem
                    {
                        OemName = "name",
                        Type    = 2,
                        OemSku  = "pika"
                    }
                },
                ProductCode     = productSku,
                ProductLeadType = 2,
                Prop65Message   = new ProductProp65Message
                {
                    MessageBody = "This product has been created through a test automation tool"
                },
                SearchKeywords = "test",
                Shipping       = new ProductShippingAttributes()
                {
                    FreightClass      = 179,
                    IsFreeShip        = true,
                    IsFreightOnly     = false,
                    IsQuickShip       = true,
                    WeightActual      = 6.72m,
                    WeightDimensional = 20.62m,
                    Height            = 9.61m,
                    Width             = 16.48m,
                    Length            = 9.60m
                },
                Specs = new List <ProductSpecification>
                {
                    new ProductSpecification
                    {
                        Name  = "pika pika",
                        Value = "chu shock"
                    }
                },
            };

            HttpResponseExtended <ProductResponse> createProductResponse = await integrationsClientV2.Products.Create(createProductRequest);

            Assert.IsNotNull(createProductResponse, $"{nameof(createProductResponse)} is null");
            Assert.IsTrue(createProductResponse.Success == true, $"Product status code is {createProductResponse.StatusCode}");
            Assert.IsNotNull(createProductResponse.Result.ExternalIdentifier, $"{nameof(createProductResponse.Result.ExternalIdentifier)} is null");

            OfferingRequest createOfferingRequest = new OfferingRequest
            {
                Identifier = OfferingExternalId,
                CatalogId  = "externalDev",
                Links      = new List <OfferingLink>
                {
                    new OfferingLink
                    {
                        Label     = "hot side catalog",
                        Url       = "http://tevin.info/unbranded-steel-chicken/primary/bypass",
                        Reference = "20"
                    }
                },
                CategoryIds = new List <string>//TODO: add a real category should be an external identifier
                {
                    offeringCategory
                },
                Description  = "Description for this test offering e2e",
                FullName     = offeringFullName,
                HomeCategory = offeringCategory,
                HtmlPage     = new HtmlPage
                {
                    H1    = $"H1 {offeringFullName}",
                    Title = $"Title {offeringFullName}",
                    Meta  = $"Meta {offeringFullName}",
                    Url   = $"{offeringFullName.ToLower().Replace(" ", "-")}"
                },
                IsPreviewAble = true,
                IsPublishAble = true,
                ProductId     = createProductResponse.Result.ExternalIdentifier
            };

            HttpResponseExtended <OfferingResponse> createOfferingResponse = await integrationsClientV2.Offering.Create(createOfferingRequest);

            Assert.IsNotNull(createOfferingResponse, $"{nameof(createOfferingResponse)} is null");
            Assert.IsTrue(createOfferingResponse.Success, $"Offering response status is {createOfferingResponse.StatusCode}");

            //Publish merchandise
            PublishMerchandiseRequest publishMerchandiseRequest = new PublishMerchandiseRequest
            {
                Hostname         = platformHostName,
                PromoteOnSuccess = true,
                ClearUnusedCache = true
            };

            HttpResponse <PublishMerchandiseResponse> publishMerchandiseResponse = await integrationsClientV1.PublishMerchandise.Publish(publishMerchandiseRequest);

            Assert.IsNotNull(publishMerchandiseResponse, $"{nameof(publishMerchandiseResponse)} is null");
            Assert.IsNull(publishMerchandiseResponse.Message, publishMerchandiseResponse.Message);

            //publish content request
            PublishContentRequest publishContentRequest = new PublishContentRequest
            {
                Hostname = platformHostName
            };

            //HttpResponse<PublishContentResponse> publishContentResponse = await integrationsClientV1.PublishContent.Publish(publishContentRequest);

            //Assert.IsNotNull(publishContentResponse, $"{nameof(publishContentResponse)}");
        }