public async Task LoadCommand_SetsItemsCorrectly() { // arrange var navigationsServiceMock = new Mock <IMvxNavigationService>(MockBehavior.Loose); var alertServiceMock = MockHelpers.CreateAlertService(); var zipCodesRepositoryMock = new Mock <IZipCodesRepository>(MockBehavior.Loose); zipCodesRepositoryMock.Setup(mock => mock.GetAllForCity(It.IsAny <int>())) .Returns(new[] { new ZipCodeModel { Id = 1 } }); var viewModel = new ZipCodesViewModel( navigationsServiceMock.Object, alertServiceMock.Object, zipCodesRepositoryMock.Object ); // act await viewModel.LoadCommand.ExecuteAsync(); // assert Assert.AreEqual(1, viewModel.Items.Count); }
public async Task SelectCommand_NavigatesToCorrectViewModelWithCorrectData() { // arrange var navigationsServiceMock = new Mock <IMvxNavigationService>(MockBehavior.Loose); var alertServiceMock = MockHelpers.CreateAlertService(); var zipCodesRepositoryMock = new Mock <IZipCodesRepository>(MockBehavior.Loose); zipCodesRepositoryMock.Setup(mock => mock.GetAllForCity(It.IsAny <int>())) .Returns(new[] { new ZipCodeModel { Id = 1 } }); var viewModel = new ZipCodesViewModel( navigationsServiceMock.Object, alertServiceMock.Object, zipCodesRepositoryMock.Object ); // act await viewModel.LoadCommand.ExecuteAsync(); await viewModel.SelectCommand.ExecuteAsync(viewModel.Items.First()); // assert navigationsServiceMock.Verify(mock => mock.Navigate <ZipCodeViewModel, ZipCodeViewModel.Parameter>( It.Is <ZipCodeViewModel.Parameter>(item => item.ZipCodeId == 1), It.IsAny <IMvxBundle>() ), Times.Once()); }
public async Task LoadCommand_CallsZipCodesRepositoryWithCorrectData() { // arrange var navigationsServiceMock = new Mock <IMvxNavigationService>(MockBehavior.Loose); var alertServiceMock = MockHelpers.CreateAlertService(); var zipCodesRepositoryMock = new Mock <IZipCodesRepository>(MockBehavior.Loose); var viewModel = new ZipCodesViewModel( navigationsServiceMock.Object, alertServiceMock.Object, zipCodesRepositoryMock.Object ); // act await viewModel.Initialize(new ZipCodesViewModel.Parameter(3)); await viewModel.LoadCommand.ExecuteAsync(); // assert zipCodesRepositoryMock.Verify(mock => mock.GetAllForCity( It.Is <int>(item => item == 3) ), Times.Once()); }
public async Task LoadCommand_CallsAlertService_LoadFailure() { // arrange var navigationsServiceMock = new Mock <IMvxNavigationService>(MockBehavior.Loose); var alertServiceMock = MockHelpers.CreateAlertService(); var zipCodesRepositoryMock = new Mock <IZipCodesRepository>(MockBehavior.Strict); var viewModel = new ZipCodesViewModel( navigationsServiceMock.Object, alertServiceMock.Object, zipCodesRepositoryMock.Object ); // act await viewModel.LoadCommand.ExecuteAsync(); // assert alertServiceMock.Verify(mock => mock.Alert( It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <Action>() ), Times.Once()); }