예제 #1
0
        public void Vend(VendDTO vend)
        {
            if (vend == null)
            {
                throw new ArgumentNullException("vend");
            }

            if (vend.payment == null)
            {
                throw new ArgumentNullException("payment");
            }

            if (vend.flavour == 0)
            {
                throw new ArgumentException("flavour");
            }

            //if we have db then we should perfrm all actions in this function under transaction
            Payment payment = PaymentMapper.Map(vend.payment);

            _paymentRepository.Add(payment);

            var criteria = new DrinkCanFindCriteria();

            criteria.Flavour = vend.flavour;

            DrinkCan can = _drinkCanRepository.FindByCriteria(criteria).FirstOrDefault();

            _drinkCanRepository.Delete(can);
        }
예제 #2
0
        public void Test_MachineService_Vend()
        {
            using (var mock = AutoMock.GetLoose())
            {
                try
                {
                    // Arrange - configure the mock
                    var paymentDTO = new PaymentDTO()
                    {
                        PaymentID = 1, Amount = 1.50m, Type = PaymentType.CreditCard
                    };
                    VendDTO recDTO = new VendDTO()
                    {
                        payment = paymentDTO, flavour = Flavour.Apple
                    };
                    var service = mock.Create <MachineSerivce>();

                    // Act
                    service.Vend(recDTO);

                    //Assert
                    Assert.IsTrue(true);
                }
                catch
                {
                    Assert.IsTrue(false);
                }
            }
        }
예제 #3
0
 public HttpResponseMessage Post([FromBody] VendDTO vend)
 {
     _machineService.Vend(vend);
     return(Request.CreateResponse(HttpStatusCode.OK));
 }