public void RequestSoda_ShouldSayOutOfStock()
        {
            MockDataAccess   da    = new MockDataAccess();
            SodaMachineLogic logic = new SodaMachineLogic(da);

            string    user         = "******";
            SodaModel expectedSoda = new SodaModel {
                Name = "Fanta", SlotOccupied = "4"
            };
            var initialState = da.MachineInfo;

            da.UserCredit[user] = 0.75M;

            var results = logic.RequestSoda(expectedSoda, user);

            Assert.Null(results.soda);

            Assert.Equal(0.75M, da.UserCredit[user]);

            Assert.Equal(initialState.cashOnHand, da.MachineInfo.cashOnHand);
            Assert.Equal(initialState.totalIncome, da.MachineInfo.totalIncome);

            Assert.False(string.IsNullOrWhiteSpace(results.errorMessage));

            Assert.True(results.change.Count() == 0);
        }
Exemple #2
0
        public void RequestSoda_ShouldReturnSodaWithNoChange()
        {
            MockDataAccess   da    = new MockDataAccess();
            SodaMachineLogic logic = new SodaMachineLogic(da);

            string    user         = "******";
            SodaModel expcetedSoda = new SodaModel {
                Name = "Coke", SlotOccupied = "1"
            };
            var initialState = da.MachineInfo;

            da.UserCredit[user] = 0.75M;

            var results = logic.RequestSoda(expcetedSoda, user);

            Assert.Equal(expcetedSoda.Name, results.soda.Name);
            Assert.Equal(expcetedSoda.SlotOccupied, results.soda.SlotOccupied);

            Assert.Equal(0, da.UserCredit[user]);

            Assert.Equal(initialState.cashOnHand + 0.75M, da.MachineInfo.cashOnHand);
            Assert.Equal(initialState.totalIncome + 0.75M, da.MachineInfo.totalIncome);

            Assert.True(string.IsNullOrWhiteSpace(results.errorMessage));

            Assert.True(results.change.Count() == 0);
        }
Exemple #3
0
        public void RequestSoda_ShouldSayNotEnoughChange()
        {
            MockDataAccess   da    = new MockDataAccess();
            SodaMachineLogic logic = new SodaMachineLogic(da);

            string    user         = "******";
            SodaModel expcetedSoda = new SodaModel {
                Name = "Coke", SlotOccupied = "1"
            };
            var initialState = da.MachineInfo;

            da.UserCredit[user] = 1.75M;
            da.CoinInventory.Clear();

            var results = logic.RequestSoda(expcetedSoda, user);

            Assert.Null(results.soda);

            Assert.Equal(1.75M, da.UserCredit[user]);

            Assert.Equal(initialState.cashOnHand, da.MachineInfo.cashOnHand);
            Assert.Equal(initialState.totalIncome, da.MachineInfo.totalIncome);

            Assert.False(string.IsNullOrWhiteSpace(results.errorMessage));

            Assert.True(results.change.Count() == 0);
        }
Exemple #4
0
        public void RequestSoda_ShouldReturnSodaWithAlternativeChange()
        {
            MockDataAccess   da    = new MockDataAccess();
            SodaMachineLogic logic = new SodaMachineLogic(da);

            string    user         = "******";
            SodaModel expcetedSoda = new SodaModel {
                Name = "Coke", SlotOccupied = "1"
            };
            var initialState = da.MachineInfo;

            da.UserCredit[user] = 1M;
            da.CoinInventory.RemoveAll(x => x.Amount == 0.25M);

            var results = logic.RequestSoda(expcetedSoda, user);

            Assert.Equal(expcetedSoda.Name, results.soda.Name);
            Assert.Equal(expcetedSoda.SlotOccupied, results.soda.SlotOccupied);

            Assert.Equal(0, da.UserCredit[user]);

            Assert.Equal(initialState.cashOnHand + 1M, da.MachineInfo.cashOnHand);
            Assert.Equal(initialState.totalIncome + 1M, da.MachineInfo.totalIncome);

            Assert.True(string.IsNullOrWhiteSpace(results.errorMessage));

            // Dime + Dime + Nickle = Quarter
            Assert.True(results.change.Count() == 3);
        }
Exemple #5
0
        public void AddToCoinInventory_ShouldWork()
        {
            MockDataAccess   da    = new MockDataAccess();
            SodaMachineLogic logic = new SodaMachineLogic(da);

            List <CoinModel> coins = new List <CoinModel>
            {
                new CoinModel {
                    Name = "Quarter", Amount = 0.25M
                },
                new CoinModel {
                    Name = "Quarter", Amount = 0.25M
                },
                new CoinModel {
                    Name = "Dime", Amount = 0.1M
                }
            };

            logic.AddToCoinInventory(coins);

            int expected = 6;
            int actual   = da.CoinInventory.Where(x => x.Name == "Quarter").Count();

            Assert.Equal(expected, actual);
        }
Exemple #6
0
        public void GetVertexById(bool pFound)
        {
            const long id  = 13241235;
            var        app = (pFound ? new App() : null);

            vMockAcc = MockDataAccess.Create(mda => {
                MockDataAccessCmd cmd = mda.GetCommand(0);
                Assert.AreEqual(GetVertexByIdScript, cmd.Script, "Incorrect Query.Script.");
                TestUtil.CheckParams(cmd.Params, "_P", new List <object> {
                    id
                });
            });
            vMockAcc.MockResult.SetupToElement(app);
            vMockCache.Setup(x => x.FindVertex <App>(id)).Returns((App)null);
            vMockCache.Setup(x => x.AddVertex(app, null));
            vMockCache.Setup(x => x.RemoveVertex <App>(id)).Returns((App)null);
            vMockFact.Setup(x => x.Create(null, false, true)).Returns(vMockAcc.Object);

            App result = vData.GetVertexById <App>(id);

            Assert.AreEqual(app, result, "Incorrect result.");
            vMockCache.Verify(x => x.FindVertex <App>(id), Times.Once);

            if (pFound)
            {
                vMockCache.Verify(x => x.RemoveVertex <App>(id), Times.Never);
                vMockCache.Verify(x => x.AddVertex(app, null), Times.Once);
            }
            else
            {
                vMockCache.Verify(x => x.RemoveVertex <App>(id), Times.Once);
                vMockCache.Verify(x => x.AddVertex(app, null), Times.Never);
            }
        }
        public void GetMemberByRefresh(int pResultCount)
        {
            const long   appId = 125125235;
            const string code  = "asdugalsdgualsdkgulsdkug";
            var          mem   = new Member();

            var mockDataAcc = MockDataAccess.Create(mda => {
                Assert.AreEqual(MockDataAccess.SessionStart, mda.GetCommand(0).SessionAction,
                                "Incorrect Command 0 SessionAction.");

                string expectScript = "m=g.V('" + DbName.Vert.OauthAccess.Refresh + "',_P)" +
                                      ".outE('" + DbName.Edge.OauthAccessAuthenticatesMemberName + "').inV;" +
                                      "(m?m=m.next():null);";
                var expectParam = new List <object> {
                    code
                };
                TestUtil.CheckWeaverScript(mda.GetCommand(1), expectScript, "_P", expectParam);

                expectScript = "m.outE('" + DbName.Edge.MemberDefinedByAppName + "')" +
                               ".inV.property('" + DbName.Vert.Vertex.VertexId + "');";
                expectParam = new List <object>();
                TestUtil.CheckWeaverScript(mda.GetCommand(2), expectScript, "_P", expectParam);

                Assert.AreEqual(MockDataAccess.SessionClose, mda.GetCommand(3).SessionAction,
                                "Incorrect Command 3 SessionAction.");

                Assert.AreEqual("OauthAccess-GetMemberByRefresh",
                                mda.Object.ExecuteName, "Incorrect ExecuteName.");
            });

            mockDataAcc.MockResult
            .Setup(x => x.GetCommandResultCount(pResultCount))
            .Returns(1);

            mockDataAcc.MockResult
            .Setup(x => x.ToElementAt <Member>(1, 0))
            .Returns(mem);

            mockDataAcc.MockResult
            .Setup(x => x.ToLongAt(2, 0))
            .Returns(appId);

            vMockData
            .Setup(x => x.Build(null, true, true))
            .Returns(mockDataAcc.Object);

            OauthMember result = vTasks.GetMemberByRefresh(vMockData.Object, code);

            if (pResultCount == 0)
            {
                Assert.Null(result, "Result should be null.");
                return;
            }

            Assert.NotNull(result, "Result should be filled.");
            Assert.AreEqual(mem, result.Member, "Incorrect Member.");
            Assert.AreEqual(appId, result.AppId, "Incorrect AppId.");
        }
Exemple #8
0
        public void TestCalculateExpirationDate()
        {
            IPackageRepository  packageRepository = new MockPackageRepository();
            PackageService      packageService    = new PackageService(packageRepository);
            StandardPackageType packageType       = MockDataAccess.GetPackageType(3);
            DateTime            todaysDate        = DateTime.Today;
            DateTime            expirationDate    = packageService.CalculateExpirationDate(packageType, todaysDate);

            Assert.AreEqual <DateTime>(todaysDate.AddMonths(packageType.ShelfLifeUnits), expirationDate);
        }
Exemple #9
0
        /*--------------------------------------------------------------------------------------------*/
        private void OnExecuteGetMember(MockDataAccess pData)
        {
            MockDataAccessCmd cmd    = pData.GetCommand(0);
            string            expect = TestUtil.InsertParamIndexes(MemberForOauthToken, "_P");

            Assert.AreEqual(expect, cmd.Script, "Incorrect Query.Script.");
            TestUtil.CheckParams(cmd.Params, "_P", new List <object> {
                vToken, vExpire
            });
        }
Exemple #10
0
        public void GetCurrentIncome_ShouldWork()
        {
            MockDataAccess   da    = new MockDataAccess();
            SodaMachineLogic logic = new SodaMachineLogic(da);

            var(_, expected, _) = da.MachineInfo;
            decimal actual = logic.GetCurrentIncome();

            Assert.Equal(expected, actual);
        }
Exemple #11
0
        public void GetTotalIncome_ShouldWork()
        {
            MockDataAccess   da    = new MockDataAccess();
            SodaMachineLogic logic = new SodaMachineLogic(da);

            decimal actual   = logic.GetTotalIncome();
            decimal expected = da.MachineInfo.totalIncome;

            Assert.Equal(expected, actual);
        }
Exemple #12
0
        public void ListTypesOfSoda_ShouldWork()
        {
            MockDataAccess   da    = new MockDataAccess();
            SodaMachineLogic logic = new SodaMachineLogic(da);

            var expected = 3;
            int actual   = logic.ListTypesOfSoda().Count();

            Assert.Equal(expected, actual);
        }
Exemple #13
0
        private Result SendPackage(int packageId, int senderCenterId, int receiverCenterId)
        {
            IPackageRepository _mockPackageRepository = new MockPackageRepository();
            PackageService     _packageServices       = new PackageService(_mockPackageRepository);
            Package            _package             = MockDataAccess.GetPackage(packageId);
            DistributionCentre _senderLocation      = MockDataAccess.GetDistributionCentre(senderCenterId);
            DistributionCentre _destinationLocation = MockDataAccess.GetDistributionCentre(receiverCenterId);

            return(_packageServices.Send(_package, _senderLocation, _destinationLocation, DateTime.Today));
        }
Exemple #14
0
        public void GetSodaInventory_ShouldWork()
        {
            MockDataAccess   da    = new MockDataAccess();
            SodaMachineLogic logic = new SodaMachineLogic(da);

            int actual   = logic.GetSodaInventory().Count();
            int expected = 8;

            Assert.Equal(expected, actual);
        }
Exemple #15
0
        public void TestReceivePackage_BarcodeNotFound()
        {
            MockPackageRepository myMockPackageRepo = new MockPackageRepository();
            PackageService        packageService    = new PackageService(myMockPackageRepo);
            DistributionCentre    myReceiverCentre  = MockDataAccess.GetDistributionCentre(3);
            string bCode = "0001015042500004";        // package1.BarCode; //
            Result res   = packageService.Receive(bCode, myReceiverCentre, DateTime.Today);

            Assert.AreEqual <bool>(res.Success, false);
            Assert.AreEqual <string>(res.ErrorMessage, TransitResult.BarCodeNotFound);
        }
Exemple #16
0
 public Package GetPackageWidthBarCode(string BarCode)                           //   (P. 05-04-2015)
 {
     foreach (Package p in MockDataAccess.GetAllPackages())
     {
         if (p.BarCode == BarCode)
         {
             return(p);
         }
     }
     return(null);
 }
Exemple #17
0
        // Try to send Package into the Sender Centre location
        public void TestSendPackage_SameLocation()
        {
            IPackageRepository _mockPackageRepository = new MockPackageRepository();
            PackageService     _packageServices       = new PackageService(_mockPackageRepository);
            Package            _package        = MockDataAccess.GetPackage(3);
            DistributionCentre _senderLocation = MockDataAccess.GetDistributionCentre(2);
            DateTime           _sendDate       = DateTime.Today;
            var _result = _packageServices.Send(_package, _senderLocation, _senderLocation, _sendDate);

            Assert.AreEqual <bool>(false, _result.Success);
        }
Exemple #18
0
        private Result DiscardPackage(int currentCentreId, string userName, string barCode)
        {
            MockPackageRepository packageRepository = new MockPackageRepository();
            PackageService        _packageService   = new PackageService(packageRepository);
            Employee employee = MockDataAccess.GetEmployee(userName);
            Package  package  = MockDataAccess.GetPackage(barCode);

            package.CurrentLocation = MockDataAccess.GetDistributionCentre(currentCentreId);
            StandardPackageType spt2 = _packageService.GetStandardPackageType(package.PackageType.PackageTypeId);

            return(_packageService.Discard(package.BarCode, employee.Location, employee, package.ExpirationDate, spt2, package.PackageId));
        }
Exemple #19
0
        // Try to send Package which is not abvailable
        public void TestSendPackage_PackageNotFond()
        {
            IPackageRepository _mockPackageRepository = new MockPackageRepository();
            PackageService     _packageServices       = new PackageService(_mockPackageRepository);
            DistributionCentre _senderLocation        = MockDataAccess.GetDistributionCentre(1);
            DistributionCentre _destinationLocation   = MockDataAccess.GetDistributionCentre(2);
            DateTime           _sendDate = DateTime.Today;
            Package            _package  = null;
            var _result = _packageServices.Send(_package, _senderLocation, _destinationLocation, _sendDate);

            Assert.AreEqual <string>(_result.ErrorMessage, "Bar Code not found");
        }
Exemple #20
0
        public void TestReceivePackage_CancelTransit()
        {
            MockPackageRepository myMockPackageRepo = new MockPackageRepository();
            PackageService        packageService    = new PackageService(myMockPackageRepo);
            Package            package1             = MockDataAccess.GetPackage(3);
            DistributionCentre myReceiverCentre     = MockDataAccess.GetDistributionCentre(3);
            int    newTransitId  = InsertMockTransit(package1, 2, 3);                                   // insert transit
            Result res           = packageService.CancelTransit(package1.BarCode, DateTime.Today);      // cancel transit
            int    foundTransits = myMockPackageRepo.GetActiveTransitsByPackage(package1).Count;

            Assert.IsTrue(res.Success && foundTransits == 0);
        }
Exemple #21
0
        // Try to send package to null destination centre
        public void TestSendPackage_SendToNullCentre()
        {
            IPackageRepository _mockPackageRepository = new MockPackageRepository();
            PackageService     _packageServices       = new PackageService(_mockPackageRepository);
            DistributionCentre _senderLocation        = MockDataAccess.GetDistributionCentre(1);
            DistributionCentre _destinationLocation   = MockDataAccess.GetDistributionCentre(2);
            DateTime           _sendDate = DateTime.Today;
            Package            _package  = MockDataAccess.GetPackage(15);
            var _result = _packageServices.Send(_package, _package.CurrentLocation, null, _sendDate);

            Assert.AreEqual <string>("Please Select the Correct Receiver Centre", _result.ErrorMessage);
        }
Exemple #22
0
        public void GetCoinInventory_ShouldWork()
        {
            MockDataAccess   da    = new MockDataAccess();
            SodaMachineLogic logic = new SodaMachineLogic(da);

            var coins = logic.GetCoinInventory();

            var expected = da.CoinInventory.Where(x => x.Name == "Quarter").Count();
            var actual   = coins.Where(x => x.Name == "Quarter").Count();

            Assert.Equal(expected, actual);
        }
Exemple #23
0
        public void TestReceivePackage_ReceiveDateTooEarly()
        {
            MockPackageRepository myMockPackageRepo = new MockPackageRepository();
            PackageService        packageService    = new PackageService(myMockPackageRepo);
            Package            package1             = MockDataAccess.GetPackage(3);
            DistributionCentre myReceiverCentre     = MockDataAccess.GetDistributionCentre(3);
            int    newTransitId = InsertMockTransit(package1, 2, 3);                                                        // insert transit
            Result res          = packageService.Receive(package1.BarCode, myReceiverCentre, DateTime.Today.AddMonths(-1)); // receive

            Assert.AreEqual <bool>(res.Success, false);
            Assert.AreEqual <string>(res.ErrorMessage, PackageResult.ReceiveDateCannotBeEarlierThanSend);
        }
Exemple #24
0
        public void IssueFullRefund_ShouldWork()
        {
            MockDataAccess   da    = new MockDataAccess();
            SodaMachineLogic logic = new SodaMachineLogic(da);
            string           user  = "******";

            da.UserCredit[user] = 0.65M;

            logic.IssueFullRefund(user);

            Assert.True(da.UserCredit[user] == 0);
        }
Exemple #25
0
        public List <PackageTransit> GetActiveTransitsByPackage(Package xPackage)
        {
            List <PackageTransit> filteredList = new List <PackageTransit>();

            foreach (PackageTransit t in MockDataAccess.GetAllPackageTransits())
            {
                if (t.Package == xPackage && t.DateReceived == null && t.DateCancelled == null)
                {
                    filteredList.Add(t);
                }
            }
            return(filteredList);
        }
Exemple #26
0
        public void GetMoneyInsertedTotal_ShouldWork()
        {
            MockDataAccess   da    = new MockDataAccess();
            SodaMachineLogic logic = new SodaMachineLogic(da);

            decimal expected = 0.65M;

            da.UserCredit.Add("test", expected);

            decimal actual = logic.GetMoneyInsertedTotal("test");

            Assert.Equal(expected, actual);
        }
Exemple #27
0
        public void TestReceivePackage_Successfully()
        {
            MockPackageRepository myMockPackageRepo = new MockPackageRepository();
            PackageService        packageService    = new PackageService(myMockPackageRepo);
            Package            package1             = MockDataAccess.GetPackage(3);
            DistributionCentre myReceiverCentre     = MockDataAccess.GetDistributionCentre(3);
            int newTransitId = InsertMockTransit(package1, 2, 3);                                       // insert transit

            packageService.Receive(package1.BarCode, myReceiverCentre, DateTime.Today);
            PackageTransit finishedTransit = MockDataAccess.GetPackageTransit(newTransitId);

            Debug.WriteLine(finishedTransit.ToString());
            Assert.IsTrue(finishedTransit.ReceiverCentre == myReceiverCentre);
        }
Exemple #28
0
        public void TestRegisterPackage()
        {
            IPackageRepository  packageRepository = new MockPackageRepository();
            PackageService      packageService    = new PackageService(packageRepository);
            StandardPackageType packageType       = MockDataAccess.GetPackageType(3);
            DistributionCentre  location          = MockDataAccess.GetDistributionCentre(2);
            DateTime            expirationDate    = DateTime.Today.AddMonths(2);
            string barCode;
            var    result         = packageService.Register(packageType, location, expirationDate, out barCode);
            int    newPackageId   = result.Id;
            string compareBarCode = string.Format("{0:D5}{1:yyMMdd}{2:D5}", packageType.PackageTypeId, expirationDate, newPackageId);

            Assert.AreEqual <string>(compareBarCode, barCode);
        }
Exemple #29
0
        public void TestRegisterPackageExpirationDateTooEarly()
        {
            IPackageRepository  packageRepository = new MockPackageRepository();
            PackageService      packageService    = new PackageService(packageRepository);
            StandardPackageType packageType       = MockDataAccess.GetPackageType(3);
            DistributionCentre  location          = MockDataAccess.GetDistributionCentre(2);
            DateTime            expirationDate    = DateTime.Today.AddDays(-1);
            string barCode;
            var    result       = packageService.Register(packageType, location, expirationDate, out barCode);
            int    newPackageId = result.Id;

            Assert.AreEqual <bool>(result.Success, false);
            Assert.AreEqual <string>(result.ErrorMessage, PackageResult.ExpirationDateCannotBeEarlierThanToday);
        }
Exemple #30
0
        public int InsertMockTransit(Package Package, int SenderId, int ReceiverId)
        {
            DistributionCentre mySenderCentre   = MockDataAccess.GetDistributionCentre(SenderId);
            DistributionCentre myReceiverCentre = MockDataAccess.GetDistributionCentre(ReceiverId);
            PackageTransit     newTransit       = new PackageTransit();

            newTransit.Package        = Package;
            newTransit.DateSent       = DateTime.Today.AddDays(-2);
            newTransit.SenderCentre   = mySenderCentre;
            newTransit.ReceiverCentre = myReceiverCentre;
            int newTransitId = MockDataAccess.InsertPackageTransit(newTransit);

            return(newTransitId);
        }