public async Task SafetyCheckFaultVM_BackButton_Cancel()
        {
            base.ClearAll();

            var safetyCheckFaultVM = _fixture.Build <SafetyCheckFaultViewModel>().Without(p => p.CommentText).Create <SafetyCheckFaultViewModel>();

            NavData <SafetyCheckFault> navItem = new NavData <SafetyCheckFault>()
            {
                Data = _trailerSafetyCheckFault
            };

            navItem.OtherData["FaultTypeText"] = "Test Text";

            var navID = Guid.NewGuid();

            _mockNavigationService.Setup(ns => ns.GetNavData <SafetyCheckFault>(navID)).Returns(navItem);

            safetyCheckFaultVM.Init(navID);

            _mockUserInteraction.Setup(ui => ui.ConfirmAsync(It.IsAny <String>(), It.IsAny <String>(), It.IsAny <String>(), It.IsAny <String>())).ReturnsAsync(false);

            await safetyCheckFaultVM.OnBackButtonPressedAsync();

            // since user pressed "ok", the back button stack proceeds and (as a modal view model) the view model should have
            // published a "false" result
            _mockMessenger.Verify(mm => mm.Publish(It.IsAny <ModalNavigationResultMessage <bool> >()), Times.Never);
        }
        // Checks that when the user cancels out of an image deletion nothing is actually deleted
        public async Task SafetyCheckFaultImageVM_Delete_Cancel()
        {
            base.ClearAll();

            var safetyCheckFaultVM = _fixture.Build <SafetyCheckFaultViewModel>().Without(p => p.CommentText).Create <SafetyCheckFaultViewModel>();

            NavData <SafetyCheckFault> navItem = new NavData <SafetyCheckFault>()
            {
                Data = _vehicleSafetyCheckFault
            };

            navItem.OtherData["FaultTypeText"] = "Test Text";

            var navID = Guid.NewGuid();

            _mockNavigationService.Setup(ns => ns.GetNavData <SafetyCheckFault>(navID)).Returns(navItem);

            safetyCheckFaultVM.Init(navID);

            int previousImageCount = safetyCheckFaultVM.Images.Count;

            // dialog returns false
            _mockUserInteraction.ConfirmReturnsFalse();

            // attempt to delete the last image
            await safetyCheckFaultVM.Images[previousImageCount - 1].DeleteAsync();

            // nothing should have been deleted since we cancelled out of the deletion
            Assert.Equal(previousImageCount, safetyCheckFaultVM.Images.Count);
            Assert.Equal(previousImageCount, _vehicleSafetyCheckFault.Images.Count);
        }
        public void SafetyCheckFaultVM_CommentTextChanged()
        {
            base.ClearAll();

            var safetyCheckFaultVM = _fixture.Build <SafetyCheckFaultViewModel>().Without(p => p.CommentText).Create <SafetyCheckFaultViewModel>();

            NavData <SafetyCheckFault> navItem = new NavData <SafetyCheckFault>()
            {
                Data = _vehicleSafetyCheckFault
            };

            navItem.OtherData["FaultTypeText"] = "Test Text";

            var navID = Guid.NewGuid();

            _mockNavigationService.Setup(ns => ns.GetNavData <SafetyCheckFault>(navID)).Returns(navItem);

            safetyCheckFaultVM.Init(navID);

            // Change the comment text
            safetyCheckFaultVM.CommentText = "Some new text";

            // Invoke the done command
            safetyCheckFaultVM.DoneCommand.Execute(null);

            Assert.Equal(safetyCheckFaultVM.CommentText, _vehicleSafetyCheckFault.Comment);
        }
        public void SafetyCheckFaultVM_Init_ImagesPopulated()
        {
            base.ClearAll();

            var safetyCheckFaultVM = _fixture.Build <SafetyCheckFaultViewModel>().Without(p => p.CommentText).Create <SafetyCheckFaultViewModel>();

            NavData <SafetyCheckFault> navItem = new NavData <SafetyCheckFault>()
            {
                Data = _vehicleSafetyCheckFault
            };

            navItem.OtherData["FaultTypeText"] = "Test Text";

            var navID = Guid.NewGuid();

            _mockNavigationService.Setup(ns => ns.GetNavData <SafetyCheckFault>(navID)).Returns(navItem);

            safetyCheckFaultVM.Init(navID);

            Assert.Equal(_vehicleSafetyCheckFault.Images.ToList().Count, safetyCheckFaultVM.Images.Count);

            for (int i = 0; i < safetyCheckFaultVM.Images.Count; i++)
            {
                Assert.Same(_vehicleSafetyCheckFault.Images.ToList()[i], safetyCheckFaultVM.Images[i].FaultImage);
            }
        }
示例#5
0
        // Tests that when a processed barcode item is selected it shows the barcode status modal
        public async Task BarcodeItemVM_Select_MultiSelect_Processed()
        {
            base.ClearAll();

            var navData = new NavData <MobileData>()
            {
                Data = _mobileData
            };
            var navID = Guid.NewGuid();

            _mockNavigationService.Setup(ns => ns.GetNavData <MobileData>(navID)).Returns(navData);

            await _barcodeScanningViewModel.Init(navID);

            var barcodeItemVM = new BarcodeItemViewModel(_mockNavigationService.Object, _damageStatuses, _barcodeScanningViewModel);

            barcodeItemVM.IsDelivered = true;

            // on the parent barcode model, mark snother of the other barcode items as processed (and selected)
            var selectedBarcodeItem = _barcodeScanningViewModel.BarcodeSections[0].Barcodes[0];

            _barcodeScanningViewModel.MarkBarcodeAsProcessed(selectedBarcodeItem);
            selectedBarcodeItem.IsSelected = true;

            await barcodeItemVM.SelectBarcodeAsync();

            // Check the selected barcode was passed into the modal as the part of the nav data
            _mockNavigationService.Verify(ns => ns.ShowModalViewModel <BarcodeStatusViewModel, bool>(
                                              It.Is <NavData <BarcodeItemViewModel> >(x => x.Data == barcodeItemVM && (x.OtherData["SelectedBarcodes"] as List <BarcodeItemViewModel>)[0] == selectedBarcodeItem),
                                              It.IsAny <Action <bool> >()));
        }
        // Checks that when the Display command is executed on an image the image is displayed in a popup image
        public void SafetyCheckFaultImageVM_DisplayImage()
        {
            base.ClearAll();

            var customUI = new Mock <ICustomUserInteraction>();

            Ioc.RegisterSingleton <ICustomUserInteraction>(customUI.Object);

            var safetyCheckFaultVM = _fixture.Build <SafetyCheckFaultViewModel>().Without(p => p.CommentText).Create <SafetyCheckFaultViewModel>();

            NavData <SafetyCheckFault> navItem = new NavData <SafetyCheckFault>()
            {
                Data = _vehicleSafetyCheckFault
            };

            navItem.OtherData["FaultTypeText"] = "Test Text";

            var navID = Guid.NewGuid();

            _mockNavigationService.Setup(ns => ns.GetNavData <SafetyCheckFault>(navID)).Returns(navItem);

            safetyCheckFaultVM.Init(navID);

            safetyCheckFaultVM.Images[0].DisplayCommand.Execute(null);

            customUI.Verify(cui => cui.PopUpImage(It.Is <byte[]>(ba => ba[0] == safetyCheckFaultVM.Images[0].Bytes[0]),
                                                  It.Is <string>(s => String.IsNullOrEmpty(s)),
                                                  It.IsAny <Action>(),
                                                  It.IsAny <string>(),
                                                  It.Is <string>(s => s == "Close")));
        }
        // checks that when initialised with multiple the pallet id of the view model is correct
        public async Task BarcodeStatusVM_MultipleBarcode_PalletID()
        {
            base.ClearAll();

            await this.SetupBarcodeScanningViewModel();

            var barcodeStatusVM = _fixture.Create <BarcodeStatusViewModel>();

            // add another two "selected" barcodes
            var navData = new NavData <BarcodeItemViewModel>()
            {
                Data = _barcodeItemViewModel1
            };

            navData.OtherData["SelectedBarcodes"] = new List <BarcodeItemViewModel>()
            {
                _barcodeItemViewModel2, _barcodeItemViewModel3
            };
            var navID = Guid.NewGuid();

            _mockNavigationService.Setup(ns => ns.GetNavData <BarcodeItemViewModel>(navID)).Returns(navData);

            barcodeStatusVM.Init(navID);

            Assert.Equal("Pallet IDs", barcodeStatusVM.PalletIDLabel);
            string expectedString = _barcodeItemViewModel1.BarcodeText + "\n" + _barcodeItemViewModel2.BarcodeText + "\n" + _barcodeItemViewModel3.BarcodeText;

            Assert.Equal(expectedString, barcodeStatusVM.PalletIDText);
        }
        public async Task InstructionSignatureVM_Complete_Signature()
        {
            base.ClearAll();

            var instructionSignatureVM = _fixture.Create <InstructionSignatureViewModel>();

            var navData = new NavData <MobileData>()
            {
                Data = _mobileData
            };
            var dataChunk = _fixture.Create <MobileApplicationDataChunkContentActivity>();

            navData.OtherData["DataChunk"] = dataChunk;

            var navID = Guid.NewGuid();

            _navigationService.Setup(ns => ns.GetNavData <MobileData>(navID)).Returns(navData);

            instructionSignatureVM.Init(navID);

            await instructionSignatureVM.InstructionDoneAsync();

            _navigationService.Verify(ns => ns.MoveToNextAsync(It.IsAny <NavData <MobileData> >()), Times.Once);

            Assert.Same(instructionSignatureVM.CustomerSignatureEncodedImage, dataChunk.Signature.EncodedImage);
            Assert.Same(instructionSignatureVM.CustomerName, dataChunk.Signature.Title);
        }
示例#9
0
        public async Task InstructionTrailerListVM_Initialization()
        {
            base.ClearAll();

            var trailerRepository = new Mock <ITrailerRepository>();
            var trailers          = _fixture.CreateMany <Core.Models.Trailer>();

            trailerRepository.Setup(vr => vr.GetAllAsync()).ReturnsAsync(trailers);

            _mockRepositories.Setup(r => r.TrailerRepository).Returns(trailerRepository.Object);

            var mobileData = _fixture.SetUpInstruction(Core.Enums.InstructionType.Collect, false, true, false, false, false, false, true, null);
            var navData    = new NavData <MobileData>()
            {
                Data = mobileData
            };

            //set the trailer in the current order to have the same registration as first trailer
            mobileData.Order.Additional.Trailer.TrailerId = trailers.First().Registration;

            var navID = Guid.NewGuid();

            _navigationServiceMock.Setup(ns => ns.GetNavData <MobileData>(navID)).Returns(navData);

            var vm = _fixture.Build <InstructionTrailerViewModel>().With(itvm => itvm.TrailerSearchText, string.Empty).Create();
            await vm.Init(navID);

            Assert.Equal(vm.DefaultTrailerReg, mobileData.Order.Additional.Trailer.TrailerId);

            // first item in list should be the "default" i.e. it is the one specified in the order
            Assert.True(vm.Trailers.First().IsDefault);
            Assert.True(vm.Trailers.First().TrailerText.EndsWith("(as order)"));
        }
示例#10
0
        public void GetNav(string ID)
        {
            List <NavData> list = Serialize.DeSerializeNow <List <NavData> >(GTKey.File_Nav);
            NavData        nav  = Utils.TreeToList(list, "ChildrenList").Where(c => c.ID == ID).FirstOrDefault();

            Response.Write(Utils.ObjectToJson(nav));
        }
        public async Task InstructionAddDeliveriesVM_BuildDeliveriesList_Deliveries()
        {
            base.ClearAll();

            _fixture.Customize <Order>(md => md.With(x => x.Type, Core.Enums.InstructionType.Deliver));
            _fixture.Customize <ItemAdditional>(md => md.With(x => x.BarcodeScanRequiredForDelivery, true));

            var nonCompletedDeliveryInstructions = _fixture.CreateMany <MobileData>();

            _mockMobileDataRepo.Setup(mdr => mdr.GetNonCompletedInstructionsAsync(It.IsAny <Guid>())).ReturnsAsync(nonCompletedDeliveryInstructions);

            var addDeliveriesVM          = _fixture.Create <InstructionAddDeliveriesViewModel>();
            NavData <MobileData> navData = new NavData <MobileData>()
            {
                Data = nonCompletedDeliveryInstructions.First()
            };
            var navID = Guid.NewGuid();

            _navigationService.Setup(ns => ns.GetNavData <MobileData>(navID)).Returns(navData);

            await addDeliveriesVM.Init(navID);

            // should be one less than the total delivery instructions (the vm's own mobile data should not be counted)
            // i.e. you can't a delivery to itself
            Assert.Equal(nonCompletedDeliveryInstructions.Count() - 1, addDeliveriesVM.DeliveryInstructions.Count);

            foreach (var instruction in addDeliveriesVM.DeliveryInstructions)
            {
                Assert.NotEqual(navData.Data, instruction.MobileData);
                Assert.Contains(instruction.MobileData, nonCompletedDeliveryInstructions);
                Assert.False(instruction.IsSelected);
            }
        }
        //Checks that the viewmodel can process changes to the barcode input property (i.e. when a barcode is scanned)
        public async Task BarcodeScanningVM_BarcodeInput()
        {
            base.ClearAll();

            var navData = new NavData <MobileData>()
            {
                Data = _mobileData
            };
            var navID = Guid.NewGuid();

            _mockNavigationService.Setup(ns => ns.GetNavData <MobileData>(navID)).Returns(navData);

            var barcodeScanningVM = _fixture.Create <BarcodeScanningViewModel>();
            await barcodeScanningVM.Init(navID);

            // set the barcode input to be the same as the input barcode of the first view model
            var barcodeToInput = barcodeScanningVM.BarcodeSections[0].Barcodes[0];

            barcodeScanningVM.BarcodeInput = barcodeToInput.BarcodeText;

            // barcode should now be in the "processed" list
            Assert.True(barcodeScanningVM.BarcodeSections[1].Contains(barcodeToInput));

            // barcode should no longer be in the "unprocessed" list
            Assert.False(barcodeScanningVM.BarcodeSections[0].Contains(barcodeToInput));

            // barcode should be marked as scanned and delivered
            Assert.True(barcodeToInput.IsScanned);
            Assert.True(barcodeToInput.IsDelivered);
        }
        protected override void AdditionalSetup()
        {
            _fixture = new Fixture().Customize(new AutoMoqCustomization());
            _fixture.OmitProperty("EffectiveDateString");

            _mobileData = _fixture.Create <MobileData>();

            _mockMobileDataRepo = _fixture.InjectNewMock <IMobileDataRepository>();
            _mockMobileDataRepo.Setup(mdr => mdr.GetByIDAsync(It.Is <Guid>(i => i == _mobileData.ID))).ReturnsAsync(_mobileData);

            _fixture.Inject <IRepositories>(_fixture.Create <Repositories>());

            _navigationService = _fixture.InjectNewMock <INavigationService>();

            _mockUserInteraction = Ioc.RegisterNewMock <ICustomUserInteraction>();

            _mockMessenger = Ioc.RegisterNewMock <IMvxMessenger>();
            _mockMessenger.Setup(m => m.Unsubscribe <GatewayInstructionNotificationMessage>(It.IsAny <MvxSubscriptionToken>()));
            _mockMessenger.Setup(m => m.Subscribe(It.IsAny <Action <GatewayInstructionNotificationMessage> >(), It.IsAny <MvxReference>(), It.IsAny <string>())).Returns(_fixture.Create <MvxSubscriptionToken>());

            Ioc.RegisterSingleton <INavigationService>(_navigationService.Object);

            _navData = new NavData <MobileData>()
            {
                Data = _mobileData
            };
            _navID = Guid.NewGuid();
            _navigationService.Setup(ns => ns.GetNavData <MobileData>(_navID)).Returns(_navData);
        }
        // checks that when "done" is pressed changes made are set back on the original barcode
        public async Task BarcodeStatusVM_Done()
        {
            base.ClearAll();

            await this.SetupBarcodeScanningViewModel();

            var barcodeStatusVM = _fixture.Create <BarcodeStatusViewModel>();

            _barcodeItemViewModel1.IsDelivered = true;
            var navData = new NavData <BarcodeItemViewModel>()
            {
                Data = _barcodeItemViewModel1
            };
            var navID = Guid.NewGuid();

            _mockNavigationService.Setup(ns => ns.GetNavData <BarcodeItemViewModel>(navID)).Returns(navData);

            barcodeStatusVM.Init(navID);

            // change some properties
            barcodeStatusVM.Barcode.DeliveryComments = "Changed comments";
            barcodeStatusVM.Barcode.IsDelivered      = !barcodeStatusVM.Barcode.IsDelivered;

            barcodeStatusVM.DoneCommand.Execute(null);

            // original barcode should have changed
            Assert.Equal(_barcodeItemViewModel1.IsDelivered, barcodeStatusVM.Barcode.IsDelivered);
            Assert.Equal(_barcodeItemViewModel1.DeliveryComments, barcodeStatusVM.Barcode.DeliveryComments);
        }
示例#15
0
        protected override void AdditionalSetup()
        {
            _fixture = new Fixture().Customize(new AutoMoqCustomization());

            _mobileData            = _fixture.Create <MobileData>();
            _mobileData.GroupTitle = "Run1010";

            _mockMobileDataRepo = _fixture.InjectNewMock <IMobileDataRepository>();
            _mockMobileDataRepo.Setup(mdr => mdr.GetByIDAsync(It.Is <Guid>(i => i == _mobileData.ID))).ReturnsAsync(_mobileData);

            _mockRepositories = _fixture.InjectNewMock <IRepositories>();
            _mockRepositories.Setup(r => r.MobileDataRepository).Returns(_mockMobileDataRepo.Object);
            Ioc.RegisterSingleton <IRepositories>(_mockRepositories.Object);

            _mockNavigationService = _fixture.InjectNewMock <INavigationService>();

            _mockUserInteraction = Ioc.RegisterNewMock <ICustomUserInteraction>();

            _mockMessenger = Ioc.RegisterNewMock <IMvxMessenger>();
            _mockMessenger.Setup(m => m.Unsubscribe <GatewayInstructionNotificationMessage>(It.IsAny <MvxSubscriptionToken>()));
            _mockMessenger.Setup(m => m.Subscribe(It.IsAny <Action <GatewayInstructionNotificationMessage> >(), It.IsAny <MvxReference>(), It.IsAny <string>())).Returns(_fixture.Create <MvxSubscriptionToken>());

            _mockInfoService = _fixture.InjectNewMock <IInfoService>();
            _mockInfoService.Setup(s => s.CurrentDriverID).ReturnsUsingFixture(_fixture);
            _mockInfoService.Setup(s => s.CurrentVehicleID).ReturnsUsingFixture(_fixture);

            Ioc.RegisterSingleton <INavigationService>(_mockNavigationService.Object);

            _navData = new NavData <MobileData>()
            {
                Data = _mobileData
            };
            _navID = Guid.NewGuid();
            _mockNavigationService.Setup(ns => ns.GetNavData <MobileData>(_navID)).Returns(_navData);
        }
示例#16
0
        public static DeliveryOptions GetWorseCaseDeliveryOptions(this NavData <MobileData> navData)
        {
            bool customerNameRequiredForDelivery      = false;
            bool customerSignatureRequiredForDelivery = false;
            bool barcodeScanRequiredForDelivery       = false;
            bool bypassCommentsScreen     = true;
            bool bypassCleanClausedScreen = true;


            List <MobileData> instructions = new List <MobileData>()
            {
                navData.Data
            };
            var additionalInstructions = navData.GetAdditionalInstructions();

            instructions.AddRange(additionalInstructions);

            foreach (var instruction in instructions)
            {
                customerNameRequiredForDelivery      = customerNameRequiredForDelivery || instruction.Order.Additional.CustomerNameRequiredForDelivery;
                customerSignatureRequiredForDelivery = customerSignatureRequiredForDelivery || instruction.Order.Additional.CustomerSignatureRequiredForDelivery;
                barcodeScanRequiredForDelivery       = barcodeScanRequiredForDelivery || instruction.Order.Items.Any(i => i.Additional.BarcodeScanRequiredForDelivery);
                bypassCleanClausedScreen             = bypassCleanClausedScreen && !instruction.Order.Items.Any(i => !i.Additional.BypassCleanClausedScreen);
                bypassCommentsScreen = bypassCommentsScreen && !instruction.Order.Items.Any(i => !i.Additional.BypassCommentsScreen);
            }

            return(new DeliveryOptions(customerNameRequiredForDelivery,
                                       customerSignatureRequiredForDelivery,
                                       barcodeScanRequiredForDelivery,
                                       bypassCommentsScreen,
                                       bypassCleanClausedScreen));
        }
示例#17
0
        public async Task InstructionTrailerListVM_CheckInstructionNotification_Update_Confirm()
        {
            base.ClearAll();

            var mobileData = _fixture.SetUpInstruction(Core.Enums.InstructionType.Collect, false, true, false, false, false, false, true, null);

            var mockMobileDataRepo = _fixture.InjectNewMock <IMobileDataRepository>();

            mockMobileDataRepo.Setup(mdr => mdr.GetByIDAsync(It.Is <Guid>(i => i == mobileData.ID))).ReturnsAsync(mobileData);

            _mockRepositories.Setup(r => r.MobileDataRepository).Returns(mockMobileDataRepo.Object);

            // set the trailer the user has selected to be the same as current trailer and the one specified on the order
            var navData = new NavData <MobileData>()
            {
                Data = mobileData
            };
            var navID = Guid.NewGuid();

            _navigationServiceMock.Setup(ns => ns.GetNavData <MobileData>(navID)).Returns(navData);

            var vm = _fixture.Create <InstructionTrailerViewModel>();

            vm.IsVisible = true;

            await vm.Init(navID);

            await vm.CheckInstructionNotificationAsync(new GatewayInstructionNotificationMessage(this, mobileData.ID, GatewayInstructionNotificationMessage.NotificationCommand.Update));

            _mockUserInteraction.Verify(cui => cui.AlertAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()), Times.Once);

            mockMobileDataRepo.Verify(mdr => mdr.GetByIDAsync(It.Is <Guid>(gui => gui.ToString() == mobileData.ID.ToString())), Times.Exactly(1));
        }
示例#18
0
        /// <summary>
        /// 删除左侧导航栏选项
        /// </summary>
        /// <param name="list"></param>
        /// <param name="temp"></param>
        /// <returns></returns>
        public bool EditNav(List <NavData> list, string ID, NavData nav = null)
        {
            if (list == null)
            {
                return(false);
            }
            NavData temp = list.Where(c => c.ID == ID).FirstOrDefault();

            if (!list.Remove(temp))
            {
                foreach (var item in list)
                {
                    if (EditNav(item.ChildrenList, ID, nav))
                    {
                        break;
                    }
                }
            }
            else
            {
                if (nav != null)
                {
                    list.Add(nav);
                }
                return(true);
            }
            return(false);
        }
        public async Task InstructionAddDeliveriesVM_BuildDeliveriesList_IsSelectedPopulated()
        {
            base.ClearAll();

            _fixture.Customize <Order>(md => md.With(x => x.Type, Core.Enums.InstructionType.Deliver));
            _fixture.Customize <ItemAdditional>(md => md.With(x => x.BarcodeScanRequiredForDelivery, true));

            var nonCompletedDeliveryInstructions = _fixture.CreateMany <MobileData>();

            _mockMobileDataRepo.Setup(mdr => mdr.GetNonCompletedInstructionsAsync(It.IsAny <Guid>())).ReturnsAsync(nonCompletedDeliveryInstructions);

            var addDeliveriesVM          = _fixture.Create <InstructionAddDeliveriesViewModel>();
            NavData <MobileData> navData = new NavData <MobileData>()
            {
                Data = nonCompletedDeliveryInstructions.First()
            };

            // set the instruction to already have one "additional instruction"
            var additionalInstruction = nonCompletedDeliveryInstructions.Last();

            navData.GetAdditionalInstructions().Add(additionalInstruction);
            var navID = Guid.NewGuid();

            _navigationService.Setup(ns => ns.GetNavData <MobileData>(navID)).Returns(navData);

            await addDeliveriesVM.Init(navID);

            // the delivery that lives is already added as an additional delivery should be selected
            Assert.True(addDeliveriesVM.DeliveryInstructions.Single(x => x.MobileData == additionalInstruction).IsSelected);
        }
        public async Task InstructionAddDeliveriesVM_BuildDeliveriesList_Deliveries_DifferentBarcodeScanningOptions()
        {
            base.ClearAll();

            _fixture.Customize <Order>(md => md.With(x => x.Type, Core.Enums.InstructionType.Deliver));
            _fixture.Customize <ItemAdditional>(md => md.With(x => x.BarcodeScanRequiredForDelivery, true));

            var nonCompletedDeliveryInstructions = _fixture.CreateMany <MobileData>();

            _mockMobileDataRepo.Setup(mdr => mdr.GetNonCompletedInstructionsAsync(It.IsAny <Guid>())).ReturnsAsync(nonCompletedDeliveryInstructions);

            var addDeliveriesVM          = _fixture.Create <InstructionAddDeliveriesViewModel>();
            NavData <MobileData> navData = new NavData <MobileData>()
            {
                Data = nonCompletedDeliveryInstructions.First()
            };

            //set vm's own mobile data to not use barcode scanning
            navData.Data.Order.Items.FirstOrDefault().Additional.BarcodeScanRequiredForDelivery = false;
            var navID = Guid.NewGuid();

            _navigationService.Setup(ns => ns.GetNavData <MobileData>(navID)).Returns(navData);

            await addDeliveriesVM.Init(navID);

            // should see no matching delivery instructions
            Assert.Equal(0, addDeliveriesVM.DeliveryInstructions.Count);
        }
示例#21
0
        public async Task InstructionTrailerListVM_CheckInstructionNotification_Delete()
        {
            base.ClearAll();

            var mobileData = _fixture.SetUpInstruction(Core.Enums.InstructionType.Collect, false, true, false, false, false, false, true, null);
            // set the trailer the user has selected to be the same as current trailer and the one specified on the order
            var navData = new NavData <MobileData>()
            {
                Data = mobileData
            };

            var navID = Guid.NewGuid();

            _navigationServiceMock.Setup(ns => ns.GetNavData <MobileData>(navID)).Returns(navData);

            var vm = _fixture.Create <InstructionTrailerViewModel>();

            vm.IsVisible = true;

            await vm.Init(navID);

            await vm.CheckInstructionNotificationAsync(new GatewayInstructionNotificationMessage(this, mobileData.ID, GatewayInstructionNotificationMessage.NotificationCommand.Delete));

            _mockUserInteraction.Verify(cui => cui.AlertAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()), Times.Once);

            _navigationServiceMock.Verify(ns => ns.GoToManifestAsync(), Times.Once);
        }
示例#22
0
        public async Task ReviseQuantityVM_SuccessfulUpdate()
        {
            base.ClearAll();

            var reviseQuantityVM = _fixture.Create <ReviseQuantityViewModel>();

            int newQuantity = 123;

            var navData = new NavData <MobileData>()
            {
                Data = _mobileData
            };

            navData.OtherData["Order"]     = _mobileData.Order.Items.FirstOrDefault();
            navData.OtherData["DataChunk"] = _fixture.Create <MobileApplicationDataChunkContentActivity>();

            var navID = Guid.NewGuid();

            _navigationService.Setup(ns => ns.GetNavData <MobileData>(navID)).Returns(navData);

            reviseQuantityVM.Init(navID);

            reviseQuantityVM.OrderQuantity = newQuantity.ToString();

            await reviseQuantityVM.ReviseQuantityAsync();

            Assert.Equal(_mobileData.Order.Items.FirstOrDefault().Quantity, reviseQuantityVM.OrderQuantity);
        }
示例#23
0
        public async Task ReviseQuantityVM_CheckInstructionNotification_Update_Confirm()
        {
            base.ClearAll();

            var reviseQuantityVM = _fixture.Create <ReviseQuantityViewModel>();

            reviseQuantityVM.IsVisible = true;

            var navData = new NavData <MobileData>()
            {
                Data = _mobileData
            };

            navData.OtherData["Order"]     = _mobileData.Order.Items.FirstOrDefault();
            navData.OtherData["DataChunk"] = _fixture.Create <MobileApplicationDataChunkContentActivity>();

            var navID = Guid.NewGuid();

            _navigationService.Setup(ns => ns.GetNavData <MobileData>(navID)).Returns(navData);

            reviseQuantityVM.Init(navID);

            await reviseQuantityVM.CheckInstructionNotificationAsync(new GatewayInstructionNotificationMessage(this, _mobileData.ID, GatewayInstructionNotificationMessage.NotificationCommand.Update));

            _mockUserInteraction.Verify(cui => cui.AlertAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()), Times.Once);

            _mockMobileDataRepo.Verify(mdr => mdr.GetByIDAsync(It.Is <Guid>(gui => gui.ToString() == _mobileData.ID.ToString())), Times.Exactly(1));
        }
示例#24
0
        public async Task InstructionCommmentVM_CommentAddToMobileApplicationDataChunkService()
        {
            base.ClearAll();

            var instructionCommentVM = _fixture.Create <InstructionCommentViewModel>();

            var navData = new NavData <MobileData>()
            {
                Data = _mobileData
            };
            var dataChunk = _fixture.Create <MobileApplicationDataChunkContentActivity>();

            navData.OtherData["DataChunk"] = dataChunk;

            var navID = Guid.NewGuid();

            _navigationService.Setup(ns => ns.GetNavData <MobileData>(navID)).Returns(navData);

            instructionCommentVM.Init(navID);

            var inputText = "This is a test comment";

            instructionCommentVM.CommentText = inputText;

            var mockDataChunkActivity = _fixture.Create <MobileApplicationDataChunkContentActivity>();

            mockDataChunkActivity.Comment = inputText;

            await instructionCommentVM.AdvanceInstructionCommentAsync();

            Assert.Equal(dataChunk.Comment, instructionCommentVM.CommentText);
        }
示例#25
0
 public NavController(int num)
 {
     _data     = new NavData();
     _dirty    = true;
     padData   = new PSMoveSharpNavPadData();
     Connected = false;
     Num       = num;
 }
示例#26
0
        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="nav"></param>
        /// <returns></returns>
        public ActionResult Edit(NavData nav)
        {
            List <NavData> list = Serialize.DeSerializeNow <List <NavData> >(GTKey.File_Nav);

            EditNav(list, nav.ID, nav);
            Serialize.ToSerialize(list, GTKey.File_Nav);
            return(Success(GTKey.Msg_Succes_Edit, "Index"));
        }
示例#27
0
 private void update(NavData data)
 {
     this.battery = data.battery + "%";
     this.altitude = Math.Round((float)data.altitude / 1000, 2) + " m";
     this.vx = "" + data.vx;
     this.vy = "" + data.vy;
     this.vz = "" + data.vz;
 }
示例#28
0
        public async Task <ServiceResponse <GetNavDataDto> > GetNavData()
        {
            ServiceResponse <GetNavDataDto> serviceResponse = new ServiceResponse <GetNavDataDto>();
            NavData navData = await _context.NavData.FirstOrDefaultAsync(bd => bd.Id == 1);

            serviceResponse.Data = _mapper.Map <GetNavDataDto>(navData);
            return(serviceResponse);
        }
示例#29
0
 public NavController(int num)
 {
     _data = new NavData();
     _dirty = true;
     padData = new PSMoveSharpNavPadData();
     Connected = false;
     Num = num;
 }
示例#30
0
        public static IEnumerable <MobileData> GetAllInstructions(this NavData <MobileData> navData)
        {
            List <MobileData> mobileDatas = new List <MobileData>();

            mobileDatas.Add(navData.Data);
            mobileDatas.AddRange(navData.GetAdditionalInstructions());

            return(mobileDatas);
        }
示例#31
0
        public static List <MobileData> GetAdditionalInstructions(this NavData <MobileData> navData)
        {
            if (!navData.OtherData.IsDefined("AdditionalInstructions"))
            {
                navData.OtherData["AdditionalInstructions"] = new List <MobileData>();
            }

            return(navData.OtherData["AdditionalInstructions"] as List <MobileData>);
        }
        protected override void AdditionalSetup()
        {
            _mockUserInteraction = new Mock <ICustomUserInteraction>();
            Ioc.RegisterSingleton <ICustomUserInteraction>(_mockUserInteraction.Object);

            _mockMessenger = new Mock <IMvxMessenger>();
            Ioc.RegisterSingleton <IMvxMessenger>(_mockMessenger.Object);

            _fixture = new Fixture().Customize(new AutoMoqCustomization());
            _fixture.OmitProperty("EffectiveDateString");
            _fixture.Customize <InstructionSafetyCheckViewModel>(vm => vm.Without(x => x.SafetyCheckItemViewModels));
            _fixture.Customize <InstructionSafetyCheckViewModel>(vm => vm.Without(x => x.SafetyProfileVehicle));
            _fixture.Customize <SafetyCheckFault>(vm => vm.With(x => x.Status, Core.Enums.SafetyCheckStatus.Passed));

            _driver  = _fixture.Create <Core.Models.Driver>();
            _vehicle = _fixture.Create <Core.Models.Vehicle>();
            _trailer = _fixture.Create <Core.Models.Trailer>();

            _infoService = _fixture.Create <InfoService>();
            _fixture.Inject <IInfoService>(_infoService);
            _infoService.SetCurrentDriver(_driver);
            _infoService.SetCurrentVehicle(_vehicle);

            _safetyCheckService = _fixture.Create <SafetyCheckService>();
            _fixture.Inject <ISafetyCheckService>(_safetyCheckService);

            _mobileData = _fixture.SetUpInstruction(Core.Enums.InstructionType.Collect, false, true, false, false, false, false, true, null);
            _navData    = new NavData <MobileData>()
            {
                Data = _mobileData
            };

            _navData.OtherData["UpdatedTrailer"] = _trailer;

            _safetyCheckService.CurrentVehicleSafetyCheckData   = _vehicleSafetyCheckData = _fixture.Create <SafetyCheckData>();
            _navData.OtherData["UpdatedTrailerSafetyCheckData"] = _trailerSafetyCheckData = _fixture.Create <SafetyCheckData>();

            var mockMobileDataRepo = _fixture.InjectNewMock <IMobileDataRepository>();

            mockMobileDataRepo.Setup(mdr => mdr.GetByIDAsync(It.Is <Guid>(i => i == _mobileData.ID))).ReturnsAsync(_mobileData);

            _mockSafetyProfileRepository = _fixture.InjectNewMock <ISafetyProfileRepository>();
            _mockConfigRepository        = _fixture.InjectNewMock <IConfigRepository>();
            _mockVehicleRepo             = _fixture.InjectNewMock <IVehicleRepository>();

            _mockVehicleRepo.Setup(vr => vr.GetByIDAsync(_vehicle.ID)).ReturnsAsync(_vehicle);

            var repositories = _fixture.Create <Repositories>();

            _fixture.Inject <IRepositories>(repositories);

            _mockNavigationService = _fixture.InjectNewMock <INavigationService>();
            Ioc.RegisterSingleton <INavigationService>(_mockNavigationService.Object);

            _safetyProfiles = CreateSafetyProfiles();
        }