Пример #1
0
        public void TestDeliveryBeforeExistingEnd()
        {
            var createResource = GetCreate(-1, -1);
            var response       = ResourcesHolder.Create <DeliveryWindowCreateResource, DeliveryWindowResource>(createResource);

            AssertBadRequestReason(response, BadRequestReason.SameExists);
        }
        private Action <CartItemCreateResource> GetCartItemEdit(int extraQuantity = 0)
        {
            var product = ResourcesHolder.EditAndCreate <ProductCreateResource, ProductResource>(p => p.IsWeighable = true).Value;

            ResourcesHolder.EditAndCreate <PromotionCreateResource, PromotionResource>(p => p.TriggeringQuantity = 1);
            return(c => { c.ProductId = product.Id; c.Quantity = product.Size + extraQuantity; });
        }
        public override OrderItemCreateResource GetRandomCreateResource()
        {
            var createResource = base.GetRandomCreateResource();

            createResource.ProductId = ResourcesHolder.Create <ProductResource>().Value.Id;
            return(createResource);
        }
Пример #4
0
 private async Task AssignCart()
 {
     TokenHandler.Logout();
     CreatedResource = ResourcesHolder.Create <CartResource>().Value;
     TokenHandler.LoginWithNewUser();
     await GetClient <ICartsControllClient>().Assign(CreatedResource.Id);
 }
Пример #5
0
        /// <summary>
        /// return a list of components available given the specified types
        /// </summary>
        /// <param name="typesToFind">the list of types to locate</param>
        /// <returns>A list of names of components</returns>
        public IEnumerable <string> GetResourcesAvailableByName(object[] typesToFind)
        {
            List <string> results = new List <string>();
            Zone          zone    = this.FindAncestor <Zone>();

            if (!(zone is null))
            {
                ResourcesHolder resources = zone.FindChild <ResourcesHolder>();
                if (!(resources is null))
                {
                    foreach (object type in typesToFind)
                    {
                        if (type is string)
                        {
                            results.Add(type as string);
                        }
                        else if (type is Type)
                        {
                            results.AddRange(resources.GetCLEMResourceNames(type as Type));
                        }
                    }
                }
            }
            return(results.AsEnumerable());
        }
Пример #6
0
        public void TestDeliveryAfterExistingStart()
        {
            var createResource = GetCreate(1, 1);
            var response       = ResourcesHolder.Create <DeliveryWindowCreateResource, DeliveryWindowResource>(createResource);

            AssertBadRequestReason(response, BadRequestReason.SameExists);
        }
        public void TestSameBarcode()
        {
            var procuctResource = ResourcesHolder.GetLastOrCreate <ProductResource>().Value;
            var response        = ResourcesHolder.EditAndCreate <ProductCreateResource, ProductResource>(p => p.Barcode = procuctResource.Barcode);

            AssertBadRequestReason(response, BadRequestReason.SameExists);
        }
Пример #8
0
        /// <summary>
        /// return a list of components available given the specified types
        /// </summary>
        /// <param name="typesToFind">the list of types to locate</param>
        /// <returns>A list of names of components</returns>
        public IEnumerable <string> GetResourcesAvailableByName(object[] typesToFind)
        {
            List <string> results = new List <string>();
            Zone          zone    = this.FindAncestor <Zone>();

            if (!(zone is null))
            {
                ResourcesHolder resources = zone.FindChild <ResourcesHolder>();
                if (!(resources is null))
                {
                    foreach (object type in typesToFind)
                    {
                        if (type is string)
                        {
                            results.Add(type as string);
                        }
                        else if (type is Type)
                        {
                            var list = resources.FindResource(type as Type)?.FindAllChildren <IResourceType>().Select(a => (a as CLEMModel).NameWithParent);
                            if (list != null)
                            {
                                results.AddRange(resources.FindResource(type as Type).FindAllChildren <IResourceType>().Select(a => (a as CLEMModel).NameWithParent));
                            }
                        }
                    }
                }
            }
            return(results.AsEnumerable());
        }
        public void TestSubCategory()
        {
            var sub      = ResourcesHolder.GetLastOrCreate <CategoryResource>().Value;
            var response = GetClient <IProductsControllClient>().GetByCategory(sub.Id).Result;

            Assert.AreEqual(CreatedResource, response.Value.First());
        }
Пример #10
0
        private void SetOrderShipped()
        {
            var orderClient = GetClient <IOrdersControllClient>();
            var orderId     = ResourcesHolder.GetResourceId <OrderResource>();

            orderClient.SetOrderShipped(orderId).Wait();
        }
Пример #11
0
        /// <inheritdoc/>
        public override string ModelSummary()
        {
            using (StringWriter htmlWriter = new StringWriter())
            {
                if (this.Parent.GetType() != typeof(LabourActivityFeed))
                {
                    htmlWriter.Write("<div class=\"warningbanner\">This Labour Feed Group must be placed beneath a Labour Activity Feed component</div>");
                    return(htmlWriter.ToString());
                }

                LabourFeedActivityTypes ft = (this.Parent as LabourActivityFeed).FeedStyle;
                htmlWriter.Write("\r\n<div class=\"activityentry\">");
                switch (ft)
                {
                case LabourFeedActivityTypes.SpecifiedDailyAmountPerAE:
                case LabourFeedActivityTypes.SpecifiedDailyAmountPerIndividual:
                    htmlWriter.Write("<span class=\"" + ((Value <= 0) ? "errorlink" : "setvalue") + "\">" + Value.ToString() + "</span>");
                    break;

                default:
                    break;
                }

                ZoneCLEM           zoneCLEM  = FindAncestor <ZoneCLEM>();
                ResourcesHolder    resHolder = zoneCLEM.FindChild <ResourcesHolder>();
                HumanFoodStoreType food      = resHolder.FindResourceType <HumanFoodStore, HumanFoodStoreType>(this, (this.Parent as LabourActivityFeed).FeedTypeName, OnMissingResourceActionTypes.Ignore, OnMissingResourceActionTypes.Ignore);
                if (food != null)
                {
                    htmlWriter.Write(" " + food.Units + " ");
                }

                htmlWriter.Write("<span class=\"setvalue\">");
                switch (ft)
                {
                case LabourFeedActivityTypes.SpecifiedDailyAmountPerIndividual:
                    htmlWriter.Write(" per individual per day");
                    break;

                case LabourFeedActivityTypes.SpecifiedDailyAmountPerAE:
                    htmlWriter.Write(" per AE per day");
                    break;

                default:
                    break;
                }
                htmlWriter.Write("</span> ");
                switch (ft)
                {
                case LabourFeedActivityTypes.SpecifiedDailyAmountPerAE:
                case LabourFeedActivityTypes.SpecifiedDailyAmountPerIndividual:
                    htmlWriter.Write("is fed to each individual");
                    break;
                }
                htmlWriter.Write(" that matches the following conditions:");

                htmlWriter.Write("</div>");
                return(htmlWriter.ToString());
            }
        }
Пример #12
0
 public void FillDatabaseWithDeliveryWindows()
 {
     for (int i = 0; i < SCALE; i++)
     {
         ResourcesHolder.Create <DeliveryWindowResource>();
     }
     ResourcesHolder.Create <OrderResource>();
 }
        public void Test_No_Promotion_On_Weighable_Product()
        {
            var cartItemEdit = GetCartItemEdit(-1);

            var cartItem = ResourcesHolder.EditAndCreate <CartItemCreateResource, CartItemResource>(cartItemEdit).Value;

            Assert.IsFalse(cartItem.ItemPrice.HasDiscount);
        }
Пример #14
0
        public void TestAddItemsOrderStatusShipped()
        {
            SetOrderShipped();

            var response = ResourcesHolder.Create <OrderItemResource>();

            AssertBadRequestReason(response, BadRequestReasonExtended.OrderNotPending);
        }
Пример #15
0
        public void TestDeliveryNotAvilibale()
        {
            ResourcesHolder.GetLastOrCreate <OrderResource>();

            var deliveryWindow = ResourcesHolder.GetLastOrCreate <DeliveryWindowResource>().Value;

            Assert.IsFalse(deliveryWindow.IsAvailable);
        }
        public void TestSameProducts()
        {
            var result = ResourcesHolder.Create <CartItemResource>();

            AssertBadRequestReason(result, BadRequestReason.SameExists);
            var cart = ResourcesHolder.GetLastOrCreate <CartResource>().Value;

            Assert.AreEqual(1, cart.Items.Count());
        }
Пример #17
0
        public void TestMyCartEmpty()
        {
            ResourcesHolder.DeleteAll <CartResource>();

            var myCartResult = GetMyCartResult();

            AssertNotErrors(myCartResult);
            Assert.IsNull(myCartResult.Value);
        }
Пример #18
0
        public void EmployeeAddedToManagerStaff()
        {
            var managerId = CreatedResource.Id;
            var employee  = GetEmployeeWithManager(managerId);

            var manager = ResourcesHolder.Get <EmployeeResource>(managerId).Value;

            Assert.AreEqual(manager.Staff[0], employee.Id);
        }
Пример #19
0
        public void DeleteManagerFail()
        {
            var managerId = CreatedResource.Id;

            GetEmployeeWithManager(managerId);

            var managerDeleteResponse = ResourcesHolder.Delete <EmployeeResource>(managerId);

            AssertBadRequestReason(managerDeleteResponse, BadRequestReasonExtended.ManagerHasStaff);
        }
        private CartItemResource AddCartItem(int extraItem = 0)
        {
            var createResource = new CartItemCreateResource()
            {
                ProductId = CreatedResource.Product.Id,
                Quantity  = CreatedResource.TriggeringQuantity + extraItem
            };

            return(ResourcesHolder.Create <CartItemCreateResource, CartItemResource>(createResource).Value);
        }
Пример #21
0
        public void ManagerNotFound()
        {
            var managerId = CreatedResource.Id;

            ResourcesHolder.Delete <EmployeeResource>(managerId);

            var response = ResourcesHolder.EditAndCreate <EmployeeCreateResource, EmployeeUpdateResource, EmployeeResource>(u => u.ManagerId = managerId);

            AssertNotFound(response);
        }
Пример #22
0
        public virtual void TestFamilyUpdate()
        {
            var resourceToUpdate = ResourceCreator.GetRandomCreateResource();

            ResourceCreator.Update(CreatedResource.Id, resourceToUpdate);
            var category = ResourcesHolder.GetLastOrCreate <DepartmentResource>().Value;

            Assert.AreEqual(resourceToUpdate.FamilyName, category.Families.First().Name);
            Assert.AreEqual(resourceToUpdate.Name, category.Families.First().Categories.First().Name);
        }
Пример #23
0
        public void TestGetOrCreateCreatesCart()
        {
            ResourcesHolder.DeleteAll <CartResource>();
            var cartsClient = GetClient <ICartsControllClient>();

            var cartResource = cartsClient.GetOrCreate(new CartCreateResource()).Result.Value;

            Assert.AreNotEqual(cartResource, CreatedResource);
            cartsClient.Delete(cartResource.Id);
        }
Пример #24
0
        public void EmployeeRemoveFromManagerStaff()
        {
            var managerId = CreatedResource.Id;
            var employee  = GetEmployeeWithManager(managerId);

            ResourcesHolder.Delete <EmployeeResource>(employee.Id);

            var manager = ResourcesHolder.Get <EmployeeResource>(managerId).Value;

            Assert.IsTrue(manager.Staff.Length == 0);
        }
Пример #25
0
        private void DeleteAllResourcesOfType <TCreateResource, TResource>()
            where TCreateResource : CreateResource
            where TResource : Resource
        {
            ResourcesHolder.DeleteAll <TResource>();
            var resourceClient = GetClient <IRestClient <TCreateResource, TResource> >();
            var resources      = resourceClient.Get().Result;

            foreach (var resource in resources.Value)
            {
                resourceClient.Delete(resource.Id).Wait();
            }
        }
        public void TestTwoProducts()
        {
            var firstCartItem = CreatedResource;

            ResourcesHolder.Create <ProductResource>();
            CreateResource();
            var cart = ResourcesHolder.GetLastOrCreate <CartResource>().Value;

            Assert.AreEqual(2, cart.Items.Count());
            decimal cartPrice = firstCartItem.ItemPrice.TotalPrice + CreatedResource.ItemPrice.TotalPrice;

            Assert.AreEqual(cartPrice, cart.CartPrice.TotalPrice);
        }
Пример #27
0
        public async Task TestAddOrder()
        {
            ResourcesHolder.Create <CartItemResource>();
            var order = ResourcesHolder.Create <OrderResource>().Value;

            ResourcesHolder.DeleteAll <CartResource>();
            var cart = ResourcesHolder.GetLastOrCreate <CartResource>().Value;

            var result = await GetClient <ICartsControllClient>().AddOrder(cart.Id, order.Id);

            cart = result.Value;
            Assert.AreNotEqual(order.Cart.Id, cart.Id);
            Assert.AreEqual(order.Cart.Items.First(), cart.Items.First());
        }
        public void TestTwoPromotionApplies()
        {
            ResourcesHolder.Delete <PromotionResource>(CreatedResource.Id);
            Action <PromotionCreateResource> edit = p => { p.TriggeringQuantity = 2; p.IsReApply = true; };

            CreatedResource = ResourcesHolder.EditAndCreate <PromotionCreateResource, PromotionResource>(edit).Value;

            AddCartItem(2);

            var cart = GetExistingOrNew <CartResource>();
            var expectedPromotionDiscount = ExpectedPromotionDiscount(2);

            Assert.AreEqual(expectedPromotionDiscount, cart.CartPrice.BeforeDiscount - cart.CartPrice.TotalPrice);
        }
Пример #29
0
        public void FillDatabaseWithOrders()
        {
            var allProducts   = GetAll <ProductCreateResource, ProductResource>();
            var allPromotions = GetAll <PromotionCreateResource, PromotionResource>();

            for (int i = 0; i < SCALE; i++)
            {
                TokenHandler.LoginWithNewUser();
                ResourcesHolder.Create <CartResource>();

                AddItemsToCart(allProducts, allPromotions);

                ResourcesHolder.Create <AddressResource>();
                ResourcesHolder.Create <OrderResource>();
                ResourcesHolder.DeleteAll <CartResource>();
            }
        }
Пример #30
0
        /// <summary>
        /// return a list of resource group cpmponents available
        /// </summary>
        /// <returns>A list of names of components</returns>
        public IEnumerable <string> GetResourceGroupsAvailable()
        {
            List <string> results = new List <string>();
            Zone          zone    = this.FindAncestor <Zone>();

            if (!(zone is null))
            {
                ResourcesHolder resources = zone.FindChild <ResourcesHolder>();
                if (!(resources is null))
                {
                    foreach (var model in resources.FindAllChildren <ResourceBaseWithTransactions>())
                    {
                        results.Add(model.Name);
                    }
                }
            }
            return(results.AsEnumerable());
        }