public void Add_item_to_order_with_invalid_md5Hash_causes_error()
        {
            try
            {
                PwintyApi api = new PwintyApi();
                var order = base.CreateEmptyOrderWithValidAddress(api);
                using (var dummyImage = File.OpenRead("itemtest.jpg"))
                {
                    using (var dummyImageTwo = File.OpenRead("itemtest2.jpg"))
                    {
                        var incorrectFileHash = Md5HashCalculator.MD5HashFile(dummyImageTwo);

                        OrderItemRequest itemToAdd = new OrderItemRequest()
                        {
                            Copies = 1,
                            Sizing = SizingOption.ShrinkToExactFit,
                            Md5Hash = incorrectFileHash,
                            Type = "4x6"
                        };

                        var result = api.OrderItems.CreateWithData(order.id, itemToAdd, dummyImage);
                    }
                }
            }
            catch (PwintyApiException exc)
            {
                Assert.IsNotNull(exc.Message);
                Assert.AreEqual(HttpStatusCode.BadRequest, exc.StatusCode);
            }
        }
Example #2
0
        public OrderItem MapEntity(OrderItemRequest request)
        {
            Product product = ValidateProduct(request.IdProduct);
            Order   order   = ValidateOrder(request.IdOrder);

            OrderItem orderItem = new OrderItem(request.Id, order, product, request.Amount);

            return(orderItem);
        }
Example #3
0
 protected void Add_item_to_order(PwintyApi api,long orderId,int? price = null)
 {
     using (var dummyImage = File.OpenRead("itemtest.jpg"))
     {
         OrderItemRequest itemToAdd = new OrderItemRequest()
         {
             Copies = 1,
             Sizing = SizingOption.ShrinkToExactFit,
             Type = "4x6",
             PriceToUser = price
         };
         var result = api.OrderItems.CreateWithData(orderId, itemToAdd, dummyImage);
         Assert.AreEqual(OrderItemStatus.Ok, result.Status);
     }
 }
Example #4
0
        public IActionResult Post(OrderItemRequest orderItemRequest)
        {
            var errorMessage = _orderRepository.AddItem(orderItemRequest);
            var response     = new DefaultResponse
            {
                Success      = string.IsNullOrWhiteSpace(errorMessage),
                ErrorMessage = errorMessage
            };

            if (!response.Success)
            {
                return(BadRequest(response));
            }

            return(Ok(response));
        }
Example #5
0
        async Task <OrderOutput> CreateOrder(decimal amountUsd = 10)
        {
            var itemRequest = new OrderItemRequest[] {
                new OrderItemRequest()
                {
                    AmountUsd = amountUsd,
                    ItemId    = "itemid",
                    Name      = "name",
                    Quantity  = 1
                }
            };
            var clientOrderId = "order-id-123";
            var clientId      = "JyNM71Tg1b76GScmVpp31KQqFWfY5xbq";
            var db            = TestUtils.CreateDatabase();
            {
                BitcornUtils.TEST_MODE = true;
                var orderController = new OrderController(db, TestUtils.GetConfig());
                var order           = await orderController.CreateOrder(new CreateOrderRequest()
                {
                    ClientId      = clientId,
                    ClientOrderId = clientOrderId,
                    Items         = itemRequest
                });


                var db2 = TestUtils.CreateDatabase();
                Assert.NotNull(order.Value);
                //var statusCode = (order.Result as StatusCodeResult).StatusCode;
                //Assert.Equal(200,statusCode);
                var srcOrder = db2.Order.FirstOrDefault((e) => e.OrderId == order.Value.OrderId);
                Assert.Equal(srcOrder.ClientOrderId, clientOrderId);
                var orderItems = db2.OrderItem.Where(e => e.OrderId == srcOrder.OrderId).ToArray();
                Assert.Equal(orderItems.Length, itemRequest.Length);
                for (int i = 0; i < orderItems.Length; i++)
                {
                    Assert.Equal(orderItems[i].UsdAmount, itemRequest[i].AmountUsd);

                    Assert.Equal(orderItems[i].Name, itemRequest[i].Name);
                    Assert.Equal(orderItems[i].Quantity, itemRequest[i].Quantity);
                    Assert.Equal(orderItems[i].ClientItemId, itemRequest[i].ItemId);
                }
                Assert.NotNull(srcOrder);
                Assert.Equal(0, srcOrder.OrderState);
                return(order.Value);
            }
        }
        public void Add_item_to_order()
        {
            PwintyApi api = new PwintyApi();
            var order = base.CreateEmptyOrderWithValidAddress(api);
            using (var dummyImage = File.OpenRead("itemtest.jpg"))
            {

                OrderItemRequest itemToAdd = new OrderItemRequest()
                {
                    Copies = 1,
                    Sizing = SizingOption.ShrinkToExactFit,
                    Type = "4x6"
                };
                var result = api.OrderItems.CreateWithData(order.id, itemToAdd, dummyImage);
                Assert.AreEqual(OrderItemStatus.Ok, result.Status);
                Assert.AreNotEqual(0, result.Price);
            }
        }
 public void Adding_item_to_order_increases_cost()
 {
     PwintyApi api = new PwintyApi();
     var order = base.CreateEmptyOrderWithValidAddress(api);
     var originalPrice = order.price;
     using (var dummyImage = File.OpenRead("itemtest.jpg"))
     {
         OrderItemRequest itemToAdd = new OrderItemRequest()
         {
             Copies = 1,
             OrderId = order.id,
             Sizing = SizingOption.ShrinkToExactFit,
             Type = "4x6"
         };
         var result = api.OrderItems.CreateWithData(order.id, itemToAdd, dummyImage);
         Assert.AreEqual(OrderItemStatus.Ok, result.Status);
     }
     var updatedOrder = api.Order.Get(order.id);
     Assert.IsTrue(updatedOrder.price > originalPrice);
 }
Example #8
0
        public string AddItem(OrderItemRequest orderItemRequest)
        {
            try
            {
                var product = _context.Set <Product>()
                              .SingleOrDefault(p => p.Id == orderItemRequest.ProductId);

                var order = _dbSet
                            .Include(i => i.Items)
                            .ThenInclude(p => p.Product)
                            .FirstOrDefault(o => o.Id == orderItemRequest.OrderId);


                if (ValidateJuice(order, product))
                {
                    var orderItem = order.Items.FirstOrDefault(p => p.Product.Id == product.Id);
                    if (orderItem != null)
                    {
                        orderItem.Amount++;
                    }
                    else
                    {
                        orderItem        = new OrderItem(product, order);
                        orderItem.Amount = 1;
                        _context.Set <OrderItem>().Add(orderItem);
                    }

                    _context.SaveChanges();

                    return(null);
                }

                return("Não é possível incluir mais de 3 sucos por comanda");
            }
            catch (Exception exception)
            {
                return(exception.Message);
            }
        }
        public void Delete_item_from_order()
        {
            PwintyApi api = new PwintyApi();
            var order = base.CreateEmptyOrderWithValidAddress(api);

            OrderItemRequest itemToAdd = new OrderItemRequest()
            {
                Copies = 1,
                Sizing = SizingOption.ShrinkToExactFit,
                Url = "http://farm8.staticflickr.com/7046/6904409825_fd4b1482fe_b.jpg",
                Type = "4x6"
            };
            var result = api.OrderItems.Create(order.id, itemToAdd);
            api.OrderItems.Delete(result.Id, order.id);

            order = api.Order.Get(order.id);
            Assert.AreEqual(0, order.photos.Count, "Should be no photos left in order");
        }
Example #10
0
        public void Add_item_to_order_with_url()
        {
            PwintyApi api = new PwintyApi();
            var order = base.CreateEmptyOrderWithValidAddress(api);

            OrderItemRequest itemToAdd = new OrderItemRequest()
            {
                Copies = 1,
                Sizing = SizingOption.ShrinkToExactFit,
                Url = "http://farm8.staticflickr.com/7046/6904409825_fd4b1482fe_b.jpg",
                Type = "4x6"
            };
            var result = api.OrderItems.Create(order.id, itemToAdd);
            Assert.AreEqual(OrderItemStatus.NotYetDownloaded, result.Status);
        }
        public IHttpActionResult Update([FromBody] OrderItemRequest request)
        {
            orderItemAppService.Update(request);

            return(Ok());
        }
        public IHttpActionResult Insert([FromBody] OrderItemRequest request)
        {
            var response = orderItemAppService.Insert(request);

            return(Ok(response));
        }
Example #13
0
 public void Create_CanvasOrder_And_Retreive()
 {
     PwintyApi api = new PwintyApi();
     var result = api.Order.Create(new CreateOrderRequest()
     {
         countryCode = "GB",
         payment = Payment.InvoiceRecipient,
         qualityLevel = QualityLevel.PRO
     });
      OrderItemRequest itemToAdd = new OrderItemRequest()
     {
         Copies = 1,
         PriceToUser = 270,
         Sizing = SizingOption.ShrinkToExactFit,
         Url = "http://farm8.staticflickr.com/7046/6904409825_fd4b1482fe_b.jpg",
         Type = "C10x12"
     };
     var newItem =   api.OrderItems.Create(result.id, itemToAdd);
     var updatedOrder = api.Order.Get(result.id);
     Assert.IsTrue(updatedOrder.id > 0);
     Assert.IsTrue(updatedOrder.price > 0);
     Assert.AreEqual(Payment.InvoiceRecipient, updatedOrder.payment);
     Assert.AreEqual(QualityLevel.PRO, updatedOrder.qualityLevel);
     Assert.AreEqual(OrderStatus.NotYetSubmitted, updatedOrder.status);
     Assert.IsNotNull(updatedOrder.shippingInfo);
     Assert.IsTrue(updatedOrder.shippingInfo.Price > 0);
     Assert.IsTrue(updatedOrder.shippingInfo.isTracked);
 }
Example #14
0
 public void Add_item_to_order_with_md5Hash()
 {
     PwintyApi api = new PwintyApi();
         var order = base.CreateEmptyOrderWithValidAddress(api);
         using (var dummyImage = File.OpenRead("itemtest.jpg"))
         {
             var fileHash = Md5HashCalculator.MD5HashFile(dummyImage);
             OrderItemRequest itemToAdd = new OrderItemRequest()
             {
                 Copies = 1,
                 Sizing = SizingOption.ShrinkToExactFit,
                 Md5Hash = fileHash,
                 Type = "4x6"
             };
             var result = api.OrderItems.CreateWithData(order.id, itemToAdd, dummyImage);
             Assert.AreEqual(OrderItemStatus.Ok, result.Status);
         }
 }
Example #15
0
        public void Add_item_with_invalid_attribute_causes_bad_request()
        {
            try
            {
                PwintyApi api = new PwintyApi();
                var order = base.CreateEmptyOrderWithValidAddress(api);

                OrderItemRequest itemToAdd = new OrderItemRequest()
                {
                    Copies = 1,
                    Sizing = SizingOption.ShrinkToExactFit,
                    Type = "4x6"
                };
                var result = api.OrderItems.Create(order.id, itemToAdd);
                Assert.Fail("Should not successfuly complete request with invalid attribute");
            }
            catch (PwintyApiException exc)
            {
                Assert.IsNotNull(exc.Message);
                Assert.AreEqual(HttpStatusCode.BadRequest, exc.StatusCode);
            }
        }
Example #16
0
        public void Get_item_by_id()
        {
            PwintyApi api = new PwintyApi();
            var order = base.CreateEmptyOrderWithValidAddress(api,Payment.InvoiceRecipient);

            OrderItemRequest itemToAdd = new OrderItemRequest()
            {
                Copies = 1,
                PriceToUser = 270,
                Sizing = SizingOption.ShrinkToExactFit,
                Url = "http://farm8.staticflickr.com/7046/6904409825_fd4b1482fe_b.jpg",
                Type = "4x6"
            };
            var result = api.OrderItems.Create(order.id, itemToAdd);
            result = api.OrderItems.Get(order.id, result.Id);
            Assert.AreEqual(itemToAdd.Copies, result.Copies);
            Assert.AreEqual(itemToAdd.Sizing, result.Sizing);
            Assert.AreEqual(itemToAdd.Url, result.Url);
            Assert.AreEqual(itemToAdd.Type, result.Type);
            Assert.AreEqual(itemToAdd.PriceToUser, result.PriceToUser);
        }
Example #17
0
        public void Cant_delete_item_from_submitted_order()
        {
            PwintyApi api = new PwintyApi();
            var order = base.CreateEmptyOrderWithValidAddress(api);

            OrderItemRequest itemToAdd = new OrderItemRequest()
            {
                Copies = 1,
                Sizing = SizingOption.ShrinkToExactFit,
                Url = "http://farm8.staticflickr.com/7046/6904409825_fd4b1482fe_b.jpg",
                Type = "4x6"
            };
            var result = api.OrderItems.Create(order.id, itemToAdd);
            api.Order.Submit(order.id);
            try
            {
                api.OrderItems.Delete(result.Id, order.id);
                Assert.Fail("Should not be able to delete photo from submitted order");
            }
            catch (PwintyApiException exc)
            {
                Assert.AreEqual(HttpStatusCode.Forbidden, exc.StatusCode);
                Assert.IsNotNull(exc.Message);
            }
            order = api.Order.Get(order.id);
            Assert.AreEqual(1, order.photos.Count, "Should still be one photo in order");
        }
Example #18
0
        public void Add_valid_item_unsupported_country()
        {
            try
            {
                PwintyApi api = new PwintyApi();
                var order = base.CreateEmptyOrderWithValidAddress(api,countryCode : "FR");

                OrderItemRequest itemToAdd = new OrderItemRequest()
                {
                    Copies = 1,
                    Sizing = SizingOption.ShrinkToExactFit,
                    Url = "http://farm8.staticflickr.com/7046/6904409825_fd4b1482fe_b.jpg",
                    Type = "4x6"
                };
                var result = api.OrderItems.Create(order.id, itemToAdd);
                Assert.Fail("Should throw error when item doesn't exist for country");
            }
            catch (PwintyApiException exc)
            {
                Assert.IsNotNull(exc.Message);
                Assert.AreEqual(HttpStatusCode.BadRequest, exc.StatusCode);
            }
        }
Example #19
0
        public void Add_item_with_neither_url_nor_data()
        {
            PwintyApi api = new PwintyApi();
            var order = base.CreateEmptyOrderWithValidAddress(api);

            OrderItemRequest itemToAdd = new OrderItemRequest()
            {
                Copies = 1,
                Sizing = SizingOption.ShrinkToExactFit,
                Type = "4x6"
            };
            var result = api.OrderItems.Create(order.id, itemToAdd);
            Assert.AreEqual(OrderItemStatus.AwaitingUrlOrData, result.Status);
        }