コード例 #1
0
        public void Fill_Properties_When_Message_Received()
        {
            //Arrange
            var viewModel = new PaymentDetailViewModel();

            const string description = "Jakis opis",
                         measureUnit = "szt.";
            const decimal pricePerUnit = 5;
            const double quantity = 4.7;

            var paymentDetailToEdit = new PaymentDetail
            {
                Description = description,
                MeasureUnit = measureUnit,
                PricePerUnit = pricePerUnit,
                Quantity =quantity
            };

            //Act
            Messenger.Default.Send(new MessageService(paymentDetailToEdit,EntityState.Edit),MessengerToken.PaymentDetailVm);

            //Verify
            Assert.AreEqual(viewModel.Description,description);
            Assert.AreEqual(viewModel.MeasureUnit,measureUnit);
            Assert.AreEqual(viewModel.PricePerUnit,pricePerUnit);
            Assert.AreEqual(viewModel.Quantity,quantity);
        }
コード例 #2
0
        public void CancelChangesToPaymentDEtailCommand_Cannot_Execute_When_Mode_Is_Not_Edit()
        {
            //Arrange
            var viewModel = new PaymentDetailViewModel();
            viewModel.Mode = Mode.Default;

            //Act
            bool canExecute = viewModel.CancelChangesToPaymentDetailCommand.CanExecute(null);

            //Verify
            Assert.IsFalse(canExecute);
        }
コード例 #3
0
        public PaymentViewModel(IUnitOfWork context,
            IMessageBoxService messageBoxService,
            IFrameNavigationService navigationService)
        {
            NavigationService = navigationService;
            MessageBoxService = messageBoxService;
            Context = context;

            BuyerList = new List<Buyer>();

            SaleDate = DateTime.Now;

            _paymentDetailList = new ItemsChangeObservableCollection<PaymentDetail>();
            _paymentDetailList.CollectionChanged+= PaymentDetailList_CollectionChanged;

            PaymentDetailViewModel = new PaymentDetailViewModel();
            RegisterMessages();
        }
コード例 #4
0
        public void CancelChangesToPaymentDetailCommand_When_Executed_Send_Original_Model_To_PaymentViewModel()
        {
            //Arrange
            PaymentDetail receivedPaymentDetail = null;

            Messenger.Default.Register<MessageService>(this, MessengerToken.PaymentVm, handleMessage =>
            {
                receivedPaymentDetail = handleMessage.PaymentDetail;
            });

            var viewModel = new PaymentDetailViewModel();

            const string description = "Jakis opis",
                         measureUnit = "szt.";
            const decimal pricePerUnit = 5;
            const double quantity = 4.7;

            var paymentDetailToEdit = new PaymentDetail
            {
                Description = description,
                MeasureUnit = measureUnit,
                PricePerUnit = pricePerUnit,
                Quantity = quantity
            };

            Messenger.Default.Send(new MessageService(paymentDetailToEdit, EntityState.Edit), MessengerToken.PaymentDetailVm);

            //Act
            viewModel.Description = "nowa opis";
            viewModel.Quantity = 5;
            viewModel.PricePerUnit = 7;
            viewModel.MeasureUnit = "kg";

            viewModel.CancelChangesToPaymentDetailCommand.Execute(null);

            //Verify
            Assert.AreEqual(description,receivedPaymentDetail.Description);
            Assert.AreEqual(measureUnit,receivedPaymentDetail.MeasureUnit);
            Assert.AreEqual(pricePerUnit,receivedPaymentDetail.PricePerUnit);
            Assert.AreEqual(measureUnit,receivedPaymentDetail.MeasureUnit);
        }
コード例 #5
0
        public void SavPaymentDetailCommand_When_Executed_In_Edit_Mode_Send_Payment_Detail_With_Computed_Amount()
        {
            //Arrange
            PaymentDetail receivedPaymentDetail = null;

            Messenger.Default.Register<MessageService>(this, MessengerToken.PaymentVm, handleMessage =>
            {
                receivedPaymentDetail = handleMessage.PaymentDetail;

            });

            var viewModel = new PaymentDetailViewModel
            {
                Description = "Jakis opis",
                MeasureUnit = "szt.",
                PricePerUnit = 5,
                Quantity = 4.6,
                Mode = Mode.Edit
            };

            decimal amount = Math.Round((decimal)viewModel.Quantity * viewModel.PricePerUnit,2);

            //Act
            viewModel.SavePaymentDetailCommand.Execute(null);

            //Verify
            Assert.IsTrue(receivedPaymentDetail.Amount==amount);
        }
コード例 #6
0
        public void SavePaymentDetailCommand_When_Executed_In_Mode_Add_Send_Payment_Detail_To_InvoiceViewModel_With_EntityStateAdd()
        {
            //Arrange
            PaymentDetail receivedPaymentDetail = null;
            var receivedState = EntityState.Default;
            Messenger.Default.Register<MessageService>(this,MessengerToken.PaymentVm,handleMessage=>
            {
                receivedPaymentDetail = handleMessage.PaymentDetail;
                receivedState = handleMessage.EntityState;
            });

            var viewModel = new PaymentDetailViewModel
            {
                Description = "Jakis opis",
                MeasureUnit = "szt.",
                PricePerUnit = 5,
                Quantity = 4.6
            };

            //Act
            viewModel.SavePaymentDetailCommand.Execute(null);

            //Verify
            Assert.IsNotNull(receivedPaymentDetail);
            Assert.IsTrue(receivedState==EntityState.Add);
        }
コード例 #7
0
        public void SavePaymentDetailCommand_Cannot_Execute_When_Quantity_Is_Less_Or_Equal_To_Zero(double quantity)
        {
            //Arrange
            var viewModel = new PaymentDetailViewModel
            {
                Description = "Jakis opis",
                MeasureUnit = "szt.",
                PricePerUnit = 5,
                Quantity = quantity
            };

            //Act
            bool canExecute = viewModel.SavePaymentDetailCommand.CanExecute(null);

            //verify
            Assert.IsFalse(canExecute);
        }
コード例 #8
0
        public void SavePaymentDetailCommand_Cannot_Execute_When_Product_Of_Quantity_And_PricePerUnit_Is_Greater_Than_Allowed_Value()
        {
            //Arrange
            var viewModel = new PaymentDetailViewModel
            {
                Description = "Jakis opis",
                MeasureUnit = "szt.",
                PricePerUnit = 7158276,
                Quantity = 4.6,
            };

            //Act
            bool canExecute = viewModel.SavePaymentDetailCommand.CanExecute(null);

            //Verify
            Assert.IsFalse(canExecute);
        }
コード例 #9
0
        public void SavePaymentDetailCommand_Cannot_Execute_When_NumberOfProductsInPayment_Is_Greater_Than_Three()
        {
            //Arrange
            var viewModel = new PaymentDetailViewModel
            {
                Description = "Jakis opis",
                MeasureUnit = "szt.",
                PricePerUnit = 71,
                Quantity = 4.6,
                NumberOfProductsInPayment = 4
            };

            //Act
            bool canExecute = viewModel.SavePaymentDetailCommand.CanExecute(null);

            //Verify
            Assert.IsFalse(canExecute);
        }
コード例 #10
0
        public void SavePaymentDetailCommand_Cannot_Execute_When_MeasureUnit_Is_Null()
        {
            //Arrange
            var viewModel = new PaymentDetailViewModel
            {
                Description = "dfgdfg",
                MeasureUnit = null,
                PricePerUnit = 5,
                Quantity = 4.5
            };

            //Act
            bool canExecute = viewModel.SavePaymentDetailCommand.CanExecute(null);

            //verify
            Assert.IsFalse(canExecute);
        }
コード例 #11
0
        public void SavePaymentDetailCommand_Cannot_Execute_When_MeasureUnit_Has_More_Than_10_Char()
        {
            //Arrange

            string measureUnit = GetStringWithLengthOf(11);
            var viewModel = new PaymentDetailViewModel
            {
                Description = "Jakis opis",
                MeasureUnit = measureUnit,
                PricePerUnit = 5,
                Quantity = 4.5
            };

            //Act
            bool canExecute = viewModel.SavePaymentDetailCommand.CanExecute(null);

            //verify
            Assert.IsFalse(canExecute);
        }
コード例 #12
0
        public void PaymentDetailViewModel_Receives_Message_With_Number_Of_Products_In_PaymentDetailList_In_PaymentViewModel()
        {
            //Arrange
            var viewModel =  new PaymentDetailViewModel
            {
                Description = "Jakis opis",
                MeasureUnit = "szt.",
                PricePerUnit = 71,
                Quantity = 4.6,
                NumberOfProductsInPayment = 0
            };

            const int numberOfProductsInPayment = 2;

            //Act
            Messenger.Default.Send(numberOfProductsInPayment,MessengerToken.PaymentDetailVm);

            //Verify
            Assert.IsTrue(numberOfProductsInPayment==viewModel.NumberOfProductsInPayment);
        }