コード例 #1
0
        /// <summary>
        /// Test setup
        /// </summary>
        public TypeManagerTest()
        {
            _client = new Client(Helper.GetConfiguration());

            Task <Response <Project.Project> > projectTask = _client.Project().GetProjectAsync();

            projectTask.Wait();
            Assert.True(projectTask.Result.Success);
            _project = projectTask.Result.Result;

            Assert.True(_project.Languages.Count > 0);

            CustomerDraft customerDraft = Helper.GetTestCustomerDraft();
            Task <Response <CustomerCreatedMessage> > customerTask = _client.Customers().CreateCustomerAsync(customerDraft);

            customerTask.Wait();
            Assert.True(customerTask.Result.Success);

            _testTypes = new List <Type>();

            for (int i = 0; i < 5; i++)
            {
                TypeDraft typeDraft = Helper.GetTypeDraft(_project);
                Task <Response <Type> > typeTask = _client.Types().CreateTypeAsync(typeDraft);
                typeTask.Wait();
                Assert.True(typeTask.Result.Success);

                Type type = typeTask.Result.Result;
                Assert.NotNull(type.Id);

                _testTypes.Add(type);
            }
        }
コード例 #2
0
        public static TypeDraft DefaultTypeDraftWithOneStringField(TypeDraft draft)
        {
            var customDraft = DefaultTypeDraft(draft);

            customDraft.FieldDefinitions.RemoveAll(field => field.Type.GetType() != typeof(StringFieldType));
            return(customDraft);
        }
コード例 #3
0
        public TypeDraft CreateTypeDraft()
        {
            TypeDraft typeDraft = new TypeDraft();

            typeDraft.Key  = TestingUtility.RandomString(10);
            typeDraft.Name = new LocalizedString();
            typeDraft.Name.Add("en", TestingUtility.RandomString(10));
            typeDraft.Description = new LocalizedString();
            typeDraft.Description.Add("en", TestingUtility.RandomString(10));
            typeDraft.ResourceTypeIds = new List <ResourceTypeId>()
            {
                ResourceTypeId.Category, ResourceTypeId.CustomerGroup, ResourceTypeId.InventoryEntry, ResourceTypeId.Order, ResourceTypeId.LineItem, ResourceTypeId.CustomLineItem, ResourceTypeId.ProductPrice, ResourceTypeId.Asset, ResourceTypeId.Payment, ResourceTypeId.PaymentInterfaceInteraction
            };
            typeDraft.FieldDefinitions = new List <FieldDefinition>();
            typeDraft.FieldDefinitions.Add(this.CreateStringFieldDefinition());
            typeDraft.FieldDefinitions.Add(this.CreateLocalizedStringFieldDefinition());
            typeDraft.FieldDefinitions.Add(this.CreateNumberFieldDefinition());
            typeDraft.FieldDefinitions.Add(this.CreateBooleanFieldDefinition());
            typeDraft.FieldDefinitions.Add(this.CreateEnumFieldDefinition());
            typeDraft.FieldDefinitions.Add(this.CreateLocalizedEnumFieldDefinition());
            typeDraft.FieldDefinitions.Add(this.CreateMoneyFieldDefinition());
            typeDraft.FieldDefinitions.Add(this.CreateDateFieldDefinition());
            typeDraft.FieldDefinitions.Add(this.CreateTimeFieldDefinition());
            typeDraft.FieldDefinitions.Add(this.CreateDateTimeFieldDefinition());
            typeDraft.FieldDefinitions.Add(this.CreateReferenceFieldDefinition());
            typeDraft.FieldDefinitions.Add(this.CreateCustomObjectReferenceFieldDefinition());
            typeDraft.FieldDefinitions.Add(this.CreateSetFieldDefinition());
            return(typeDraft);
        }
コード例 #4
0
        public static TypeDraft DefaultTypeDraftWithKey(TypeDraft draft, string key)
        {
            var customDraft = DefaultTypeDraft(draft);

            customDraft.Key = key;
            return(customDraft);
        }
コード例 #5
0
        public static TypeDraft DefaultTypeDraftWithoutFields(TypeDraft draft)
        {
            var customDraft = DefaultTypeDraft(draft);

            customDraft.FieldDefinitions.Clear();
            return(customDraft);
        }
コード例 #6
0
 public static TypeDraft DefaultTypeDraft(TypeDraft typeDraft)
 {
     typeDraft.Key  = TestingUtility.RandomString(10);
     typeDraft.Name = new LocalizedString();
     typeDraft.Name.Add("en", TestingUtility.RandomString(10));
     typeDraft.Description = new LocalizedString();
     typeDraft.Description.Add("en", TestingUtility.RandomString(10));
     typeDraft.ResourceTypeIds = new List <ResourceTypeId>()
     {
         ResourceTypeId.Category, ResourceTypeId.CustomerGroup, ResourceTypeId.InventoryEntry, ResourceTypeId.Order, ResourceTypeId.LineItem, ResourceTypeId.CustomLineItem, ResourceTypeId.ProductPrice, ResourceTypeId.Asset, ResourceTypeId.Payment, ResourceTypeId.PaymentInterfaceInteraction, ResourceTypeId.Review, ResourceTypeId.CartDiscount, ResourceTypeId.DiscountCode, ResourceTypeId.Channel, ResourceTypeId.ShoppingList, ResourceTypeId.ShoppingListTextLineItem, ResourceTypeId.Customer, ResourceTypeId.OrderEdit, ResourceTypeId.ShippingMethod
     };
     typeDraft.FieldDefinitions = new List <FieldDefinition>();
     typeDraft.FieldDefinitions.Add(CreateStringFieldDefinition());
     typeDraft.FieldDefinitions.Add(CreateLocalizedStringFieldDefinition());
     typeDraft.FieldDefinitions.Add(CreateNumberFieldDefinition());
     typeDraft.FieldDefinitions.Add(CreateBooleanFieldDefinition());
     typeDraft.FieldDefinitions.Add(CreateEnumFieldDefinition());
     typeDraft.FieldDefinitions.Add(CreateLocalizedEnumFieldDefinition());
     typeDraft.FieldDefinitions.Add(CreateMoneyFieldDefinition());
     typeDraft.FieldDefinitions.Add(CreateDateFieldDefinition());
     typeDraft.FieldDefinitions.Add(CreateTimeFieldDefinition());
     typeDraft.FieldDefinitions.Add(CreateDateTimeFieldDefinition());
     typeDraft.FieldDefinitions.Add(CreateReferenceFieldDefinition());
     typeDraft.FieldDefinitions.Add(CreateCustomObjectReferenceFieldDefinition());
     typeDraft.FieldDefinitions.Add(CreateSetFieldDefinition());
     return(typeDraft);
 }
コード例 #7
0
        public TypeDraft CreateTypeDraft()
        {
            TypeDraft typeDraft = new TypeDraft();

            typeDraft.Key  = this.RandomString(10);
            typeDraft.Name = new LocalizedString();
            typeDraft.Name.Add("en", this.RandomString(10));
            typeDraft.Description = new LocalizedString();
            typeDraft.Description.Add("en", this.RandomString(10));
            typeDraft.ResourceTypeIds = new List <ResourceTypeId>()
            {
                ResourceTypeId.Category, ResourceTypeId.CustomerGroup, ResourceTypeId.InventoryEntry, ResourceTypeId.Order, ResourceTypeId.LineItem, ResourceTypeId.CustomLineItem
            };
            typeDraft.FieldDefinitions = new List <FieldDefinition>();
            typeDraft.FieldDefinitions.Add(this.CreateStringFieldDefinition());
            typeDraft.FieldDefinitions.Add(this.CreateLocalizedStringFieldDefinition());
            typeDraft.FieldDefinitions.Add(this.CreateNumberFieldDefinition());
            typeDraft.FieldDefinitions.Add(this.CreateBooleanFieldDefinition());
            typeDraft.FieldDefinitions.Add(this.CreateEnumFieldDefinition());
            typeDraft.FieldDefinitions.Add(this.CreateLocalizedEnumFieldDefinition());
            typeDraft.FieldDefinitions.Add(this.CreateMoneyFieldDefinition());
            typeDraft.FieldDefinitions.Add(this.CreateDateFieldDefinition());
            typeDraft.FieldDefinitions.Add(this.CreateTimeFieldDefinition());
            typeDraft.FieldDefinitions.Add(this.CreateDateTimeFieldDefinition());
            typeDraft.FieldDefinitions.Add(this.CreateReferenceFieldDefinition());
            typeDraft.FieldDefinitions.Add(this.CreateSetFieldDefinition());
            return(typeDraft);
        }
コード例 #8
0
        public void SerializeStringFieldType()
        {
            ISerializerService serializerService = this.serializationFixture.SerializerService;
            TypeDraft          typeDraft         = new TypeDraft();

            typeDraft.Key             = "new-key";
            typeDraft.ResourceTypeIds = new List <ResourceTypeId>();
            typeDraft.ResourceTypeIds.Add(ResourceTypeId.Category);
            typeDraft.ResourceTypeIds.Add(ResourceTypeId.CustomLineItem);
            FieldDefinition fieldDefinition = new FieldDefinition();

            fieldDefinition.Name     = "string-field";
            fieldDefinition.Required = true;
            fieldDefinition.Label    = new LocalizedString();
            fieldDefinition.Label.Add("en", "string description");
            fieldDefinition.InputHint  = TextInputHint.SingleLine;
            fieldDefinition.Type       = new StringFieldType();
            typeDraft.FieldDefinitions = new List <FieldDefinition>();
            typeDraft.FieldDefinitions.Add(fieldDefinition);
            string result              = serializerService.Serialize(typeDraft);
            JToken resultFormatted     = JValue.Parse(result);
            string serialized          = File.ReadAllText("Resources/FieldTypes/Serialized.json");
            JToken serializedFormatted = JValue.Parse(serialized);

            serializedFormatted.Should().BeEquivalentTo(resultFormatted);
        }
コード例 #9
0
        public Type CreateType()
        {
            TypeDraft typeDraft           = this.CreateTypeDraft();
            IClient   commerceToolsClient = this.GetService <IClient>();
            Type      createdType         = commerceToolsClient.ExecuteAsync(new CreateCommand <Type>(typeDraft)).Result;

            return(createdType);
        }
コード例 #10
0
        public void CreateType()
        {
            IClient   commerceToolsClient = this.typeFixture.GetService <IClient>();
            TypeDraft typeDraft           = this.typeFixture.CreateTypeDraft();
            Type      type = commerceToolsClient.ExecuteAsync(new CreateCommand <Type>(typeDraft)).Result;

            // This can also be done in a proxy class wrapping Client that adds types to delete inside
            this.typeFixture.TypesToDelete.Add(type);
            Assert.Equal(typeDraft.Key, type.Key);
        }
コード例 #11
0
        public async Task ShouldSetCustomTypeAndSetCustomFieldAsync()
        {
            // Arrange, create a type
            TypeDraft typeDraft = Helper.GetTypeDraftForInventory(_project);
            Task <Response <Type> > typeTask = _client.Types().CreateTypeAsync(typeDraft);

            typeTask.Wait();
            Assert.IsTrue(typeTask.Result.Success, "CreateType failed");
            Type testType = typeTask.Result.Result;

            ResourceIdentifier typeResourceIdentifier = new ResourceIdentifier
            {
                Id     = testType.Id,
                TypeId = commercetools.Common.ReferenceType.Type
            };

            string fieldName = testType.FieldDefinitions[0].Name;

            JObject fields = new JObject();

            fields.Add(fieldName, Helper.GetRandomString(10));

            SetCustomTypeAction setCustomTypeAction = new SetCustomTypeAction
            {
                Type   = typeResourceIdentifier,
                Fields = fields,
            };

            // Act 1, try set custom type
            Response <InventoryEntry> responseCustomType = await _client.Inventories().UpdateInventoryEntryAsync(_testInventories[0], setCustomTypeAction);

            // Assert
            Assert.IsTrue(responseCustomType.Success);
            _testInventories[0] = responseCustomType.Result;

            Assert.NotNull(_testInventories[0].Custom.Fields);
            Assert.AreEqual(fields[fieldName], _testInventories[0].Custom.Fields[fieldName]);

            // Arrange, change value
            fields[fieldName] = Helper.GetRandomString(10);

            SetCustomFieldAction setCustomFieldAction = new SetCustomFieldAction(fieldName);

            setCustomFieldAction.Value = fields[fieldName];

            // Act 2, try update custom field
            Response <InventoryEntry> cartResponse = await _client.Inventories().UpdateInventoryEntryAsync(_testInventories[0], setCustomFieldAction);

            // Assert
            Assert.IsTrue(cartResponse.Success);
            _testInventories[0] = cartResponse.Result;

            Assert.NotNull(_testInventories[0].Custom.Fields);
            Assert.AreEqual(fields[fieldName], _testInventories[0].Custom.Fields[fieldName]);
        }
コード例 #12
0
        public async Task ShouldCreateAndDeleteTypeAsync()
        {
            TypeDraft       typeDraft    = Helper.GetTypeDraft(_project);
            Response <Type> typeResponse = await _client.Types().CreateTypeAsync(typeDraft);

            Assert.IsTrue(typeResponse.Success);

            Type type = typeResponse.Result;

            Assert.NotNull(type.Id);

            string deletedTypeId = type.Id;

            Response <JObject> deleteResponse = await _client.Types().DeleteTypeAsync(type);

            Assert.IsTrue(deleteResponse.Success);

            typeResponse = await _client.Types().GetTypeByIdAsync(deletedTypeId);

            Assert.IsFalse(typeResponse.Success);
        }
コード例 #13
0
        /// <summary>
        /// Gets a test type draft.
        /// </summary>
        /// <param name="project">Project</param>
        /// <returns>TypeDraft</returns>
        public static TypeDraft GetTypeDraft(Project.Project project)
        {
            LocalizedString typeName      = new LocalizedString();
            string          randomPostfix = Helper.GetRandomString(10);

            typeName.SetValue(project.Languages[0], string.Concat("Test Type", randomPostfix));

            List <string> resourceTypeIds = new List <string> {
                "order"
            };

            TypeDraft typeDraft =
                new TypeDraft(string.Concat("test-type-", randomPostfix), typeName, resourceTypeIds);

            typeDraft.FieldDefinitions = new List <FieldDefinition> {
                Helper.GetFieldDefinition(project, "field1", "Field 1", new StringType()),
                Helper.GetFieldDefinition(project, "field2", "Field 2", new StringType()),
                Helper.GetFieldDefinition(project, "field3", "Field 3", new StringType())
            };

            return(typeDraft);
        }
コード例 #14
0
        public void Init()
        {
            _client = new Client(Helper.GetConfiguration());

            Task <Response <Project.Project> > projectTask = _client.Project().GetProjectAsync();

            projectTask.Wait();
            Assert.IsTrue(projectTask.Result.Success);
            _project = projectTask.Result.Result;

            Assert.IsTrue(_project.Languages.Count > 0, "No Languages");
            Assert.IsTrue(_project.Currencies.Count > 0, "No Currencies");

            _testCustomers = new List <Customer>();
            _testCarts     = new List <Cart>();
            _testCartsExternalAmountTaxMode = new List <Cart>();
            CustomerDraft customerDraft;
            Task <Response <CustomerCreatedMessage> > customerTask;
            CustomerCreatedMessage customerCreatedMessage;
            CartDraft cartDraft;
            Cart      cart;
            Task <Response <Cart> > cartTask;

            for (int i = 0; i < 5; i++)
            {
                customerDraft = Helper.GetTestCustomerDraft();
                customerTask  = _client.Customers().CreateCustomerAsync(customerDraft);
                customerTask.Wait();
                Assert.IsTrue(customerTask.Result.Success);

                customerCreatedMessage = customerTask.Result.Result;
                Assert.NotNull(customerCreatedMessage.Customer);
                Assert.NotNull(customerCreatedMessage.Customer.Id);

                _testCustomers.Add(customerCreatedMessage.Customer);

                cartDraft = Helper.GetTestCartDraft(_project, customerCreatedMessage.Customer.Id);
                cartTask  = _client.Carts().CreateCartAsync(cartDraft);
                cartTask.Wait();
                Assert.NotNull(cartTask.Result);
                Assert.IsTrue(cartTask.Result.Success, "CreateCartAsync failed");
                cart = cartTask.Result.Result;
                Assert.NotNull(cart.Id);
                Console.Error.WriteLine(string.Format("CartManagerTest - Information Only - Init TestCartDraft TaxMode: {0}", cartDraft.TaxMode == null ? "(default)" : cart.TaxMode.ToString()));

                _testCarts.Add(cart);


                cartDraft         = Helper.GetTestCartDraft(_project, customerCreatedMessage.Customer.Id);
                cartDraft.TaxMode = TaxMode.ExternalAmount;
                cartTask          = _client.Carts().CreateCartAsync(cartDraft);
                cartTask.Wait();
                Assert.NotNull(cartTask.Result);
                Assert.IsTrue(cartTask.Result.Success, "CreateCartAsync failed");
                cart = cartTask.Result.Result;
                Assert.IsTrue(cart.TaxMode == TaxMode.ExternalAmount, string.Format("Cart created using ExternalAmount TaxMode failed - TaxMode: {0}", cart.TaxMode));
                Assert.NotNull(cart.Id);
                Console.Error.WriteLine(string.Format("CartManagerTest - Information Only - Init TestCartDraft TaxMode: {0}", cartDraft.TaxMode == null ? "(default)" : cart.TaxMode.ToString()));

                _testCartsExternalAmountTaxMode.Add(cart);
            }

            //customer/cart with external tax mode enabled

            customerDraft = Helper.GetTestCustomerDraft();
            customerTask  = _client.Customers().CreateCustomerAsync(customerDraft);
            customerTask.Wait();
            Assert.IsTrue(customerTask.Result.Success);
            customerCreatedMessage = customerTask.Result.Result;
            Assert.NotNull(customerCreatedMessage.Customer);
            Assert.NotNull(customerCreatedMessage.Customer.Id);

            _testCustomers.Add(customerCreatedMessage.Customer);

            cartDraft = Helper.GetTestCartDraftUsingExternalTaxMode(_project, customerCreatedMessage.Customer.Id);
            cartTask  = _client.Carts().CreateCartAsync(cartDraft);
            cartTask.Wait();
            Assert.NotNull(cartTask.Result);
            Assert.IsTrue(cartTask.Result.Success, "CreateCartAsync failed");
            cart = cartTask.Result.Result;
            Assert.NotNull(cart.Id);
            Console.Error.WriteLine(string.Format("CartManagerTest - Information Only - Init TestCartDraft TaxMode: {0}", cart.TaxMode));

            _testCarts.Add(cart);

            ProductTypeDraft productTypeDraft = Helper.GetTestProductTypeDraft();
            Task <Response <ProductType> > testProductTypeTask =
                _client.ProductTypes().CreateProductTypeAsync(productTypeDraft);

            testProductTypeTask.Wait();
            Assert.IsTrue(testProductTypeTask.Result.Success, "CreateProductType failed");
            _testProductType = testProductTypeTask.Result.Result;
            Assert.NotNull(_testProductType.Id);

            TaxCategoryDraft taxCategoryDraft = Helper.GetTestTaxCategoryDraft(_project);
            Task <Response <TaxCategory> > taxCategoryTask =
                _client.TaxCategories().CreateTaxCategoryAsync(taxCategoryDraft);

            taxCategoryTask.Wait();
            Assert.IsTrue(taxCategoryTask.Result.Success, "CreateTaxCategory failed");
            _testTaxCategory = taxCategoryTask.Result.Result;
            Assert.NotNull(_testTaxCategory.Id);

            Task <Response <ZoneQueryResult> > zoneQueryResultTask = _client.Zones().QueryZonesAsync();

            zoneQueryResultTask.Wait();
            Assert.IsTrue(zoneQueryResultTask.Result.Success);

            if (zoneQueryResultTask.Result.Result.Results.Count > 0)
            {
                _testZone        = zoneQueryResultTask.Result.Result.Results[0];
                _createdTestZone = false;
            }
            else
            {
                ZoneDraft zoneDraft = Helper.GetTestZoneDraft();
                Task <Response <Zone> > zoneTask = _client.Zones().CreateZoneAsync(zoneDraft);
                zoneTask.Wait();
                Assert.IsTrue(zoneTask.Result.Success, "CreateZone failed");
                _testZone        = zoneTask.Result.Result;
                _createdTestZone = true;
            }

            Assert.NotNull(_testZone.Id);

            foreach (string country in _project.Countries)
            {
                Location location =
                    _testZone.Locations
                    .Where(l => l.Country.Equals(country, StringComparison.OrdinalIgnoreCase))
                    .FirstOrDefault();

                if (location == null)
                {
                    location         = new Location();
                    location.Country = country;

                    AddLocationAction       addLocationAction = new AddLocationAction(location);
                    Task <Response <Zone> > updateZoneTask    = _client.Zones().UpdateZoneAsync(_testZone, addLocationAction);
                    updateZoneTask.Wait();
                    Assert.IsTrue(updateZoneTask.Result.Success, "UpdateZone failed");
                    _testZone = updateZoneTask.Result.Result;
                }
            }

            Assert.NotNull(_testZone.Locations.Count > 0);

            ShippingMethodDraft shippingMethodDraft =
                Helper.GetTestShippingMethodDraft(_project, _testTaxCategory, _testZone);
            Task <Response <ShippingMethod> > shippingMethodTask =
                _client.ShippingMethods().CreateShippingMethodAsync(shippingMethodDraft);

            shippingMethodTask.Wait();
            Assert.IsTrue(shippingMethodTask.Result.Success, "CreateShippingMethod failed");
            _testShippingMethod = shippingMethodTask.Result.Result;

            Assert.NotNull(_testShippingMethod.Id);

            ProductDraft productDraft = Helper.GetTestProductDraft(_project, _testProductType.Id, _testTaxCategory.Id);
            Task <Response <Product> > testProductTask = _client.Products().CreateProductAsync(productDraft);

            testProductTask.Wait();
            Assert.IsTrue(testProductTask.Result.Success, "CreateProduct failed");
            _testProduct = testProductTask.Result.Result;

            Assert.NotNull(_testProduct.Id);

            PaymentDraft paymentDraft = Helper.GetTestPaymentDraft(_project, _testCustomers[0].Id);
            Task <Response <Payment> > paymentTask = _client.Payments().CreatePaymentAsync(paymentDraft);

            paymentTask.Wait();
            Assert.IsTrue(paymentTask.Result.Success, "CreatePayment failed");
            _testPayment = paymentTask.Result.Result;

            Assert.NotNull(_testPayment.Id);

            TypeDraft typeDraft = Helper.GetTypeDraft(_project);
            Task <Response <Type> > typeTask = _client.Types().CreateTypeAsync(typeDraft);

            typeTask.Wait();
            Assert.IsTrue(typeTask.Result.Success, "CreateType failed");
            _testType = typeTask.Result.Result;
        }