// 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> >())); }
public BarcodeItemPage(INavigation Navigation = null, BarcodeModel barcode = null) { InitializeComponent(); var vm = new BarcodeItemViewModel(barcode); vm.Navigation = Navigation; BindingContext = vm; }
public void BarcodeItemVM_Construction() { base.ClearAll(); var barcodeItemVM = new BarcodeItemViewModel(_mockNavigationService.Object, _damageStatuses, _barcodeScanningViewModel); // check the damage statuses have been set correctly Assert.Equal(_damageStatuses, barcodeItemVM.DamageStatuses); Assert.Equal(_damageStatuses[0], barcodeItemVM.DamageStatus); }
public override void MarkBarcodeAsProcessed(BarcodeItemViewModel barcodeItem, bool wasScanned = true) { MarkAsProcessedBarcodeItem = barcodeItem; MarkAsProcessedWasScanned = wasScanned; if (_unprocessedBarcodes.Contains(barcodeItem)) { base.MarkBarcodeAsProcessed(barcodeItem); } }
public void BarcodeItemVM_PalletForceDeliveryStatus(bool?isDelivered, string damageStatusCode, string expectedPalletForceStatus) { base.ClearAll(); var barcodeItemVM = new BarcodeItemViewModel(_mockNavigationService.Object, _damageStatuses, _barcodeScanningViewModel); barcodeItemVM.IsDelivered = isDelivered; barcodeItemVM.DamageStatus = barcodeItemVM.DamageStatuses.Single(ds => ds.Code == damageStatusCode); Assert.Equal(expectedPalletForceStatus, barcodeItemVM.PalletforceDeliveryStatus); }
public void BarcodeItemVM_ValidComments(bool?isDelivered, string damageStatusCode, string deliveryComments, bool expectedValidComments) { base.ClearAll(); var barcodeItemVM = new BarcodeItemViewModel(_mockNavigationService.Object, _damageStatuses, _barcodeScanningViewModel); barcodeItemVM.IsDelivered = isDelivered; barcodeItemVM.DamageStatus = barcodeItemVM.DamageStatuses.Single(ds => ds.Code == damageStatusCode); barcodeItemVM.DeliveryComments = deliveryComments; Assert.Equal(expectedValidComments, barcodeItemVM.ValidComments); }
public void BarcodeItemVM_Clone() { base.ClearAll(); var barcodeItemVM = new BarcodeItemViewModel(_mockNavigationService.Object, _damageStatuses, _barcodeScanningViewModel); var clone = barcodeItemVM.Clone(); // check the properties we care about have been cloned Assert.Equal(_damageStatuses, barcodeItemVM.DamageStatuses); Assert.Equal(barcodeItemVM.DamageStatus, barcodeItemVM.DamageStatus); Assert.Equal(barcodeItemVM.DeliveryComments, barcodeItemVM.DeliveryComments); Assert.Equal(barcodeItemVM.IsDelivered, barcodeItemVM.IsDelivered); }
private async Task SetupBarcodeScanningViewModel() { var navData = new NavData <MobileData>() { Data = _mobileData }; var navID = Guid.NewGuid(); _mockNavigationService.Setup(ns => ns.GetNavData <MobileData>(navID)).Returns(navData); _barcodeScanningViewModel = _fixture.Create <BarcodeScanningViewModel>(); await _barcodeScanningViewModel.Init(navID); // mark all the barcode items as processed _barcodeScanningViewModel.MarkBarcodeAsProcessed(_barcodeScanningViewModel.BarcodeSections[0].Barcodes[0]); _barcodeScanningViewModel.MarkBarcodeAsProcessed(_barcodeScanningViewModel.BarcodeSections[0].Barcodes[0]); _barcodeScanningViewModel.MarkBarcodeAsProcessed(_barcodeScanningViewModel.BarcodeSections[0].Barcodes[0]); _barcodeItemViewModel1 = _barcodeScanningViewModel.BarcodeSections[1].Barcodes[0]; _barcodeItemViewModel2 = _barcodeScanningViewModel.BarcodeSections[1].Barcodes[1]; _barcodeItemViewModel3 = _barcodeScanningViewModel.BarcodeSections[1].Barcodes[2]; }
// Tests that when an unprocessed barcode item is selected it shows the confirm dialog then calls "MarkAsProcessed" on the parent barcode scanning view model public async Task BarcodeItemVM_Select_Unprocessed() { 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); _mockUserInteraction.ConfirmAsyncReturnsTrueIfTitleStartsWith("Mark Barcode as"); await barcodeItemVM.SelectBarcodeAsync(); Assert.Equal(barcodeItemVM, _barcodeScanningViewModel.MarkAsProcessedBarcodeItem); Assert.False(_barcodeScanningViewModel.MarkAsProcessedWasScanned); }
// Tests that when a processed barcode item is selected it shows the barcode status modal public async Task BarcodeItemVM_Select_SingleSelect_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; await barcodeItemVM.SelectBarcodeAsync(); _mockNavigationService.Verify(ns => ns.ShowModalViewModel <BarcodeStatusViewModel, bool>( It.Is <NavData <BarcodeItemViewModel> >(x => x.Data == barcodeItemVM), It.IsAny <Action <bool> >())); }