public async Task LoadCommand_CallsAlertService_LoadFailure() { // arrange var navigationsServiceMock = new Mock <IMvxNavigationService>(MockBehavior.Loose); var alertServiceMock = MockHelpers.CreateAlertService(); var citiesRepositoryMock = new Mock <ICitiesRepository>(MockBehavior.Strict); var zipCodesRepositoryMock = new Mock <IZipCodesRepository>(MockBehavior.Loose); var viewModel = new CitiesViewModel( navigationsServiceMock.Object, alertServiceMock.Object, citiesRepositoryMock.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()); }
public async Task LoadCommand_SetsItemsCorrectly() { // arrange var navigationsServiceMock = new Mock <IMvxNavigationService>(MockBehavior.Loose); var alertServiceMock = MockHelpers.CreateAlertService(); var citiesRepositoryMock = new Mock <ICitiesRepository>(MockBehavior.Loose); citiesRepositoryMock.Setup(mock => mock.GetAll()) .Returns(new[] { new CityModel { Id = 1 } }); var zipCodesRepositoryMock = new Mock <IZipCodesRepository>(MockBehavior.Loose); var viewModel = new CitiesViewModel( navigationsServiceMock.Object, alertServiceMock.Object, citiesRepositoryMock.Object, zipCodesRepositoryMock.Object ); // act await viewModel.LoadCommand.ExecuteAsync(); // assert Assert.AreEqual(1, viewModel.Items.Count); }
public async Task LoadCommand_NotCallsAlertService_UpdateSuccessful() { // arrange var navigationsServiceMock = new Mock <IMvxNavigationService>(MockBehavior.Loose); var alertServiceMock = MockHelpers.CreateAlertService(); var updateServiceMock = new Mock <IUpdateService>(MockBehavior.Loose); var viewModel = new UpdateViewModel( navigationsServiceMock.Object, alertServiceMock.Object, updateServiceMock.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.Never()); }
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 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 SelectCommand_NavigatesToCorrectViewModelWithCorrectData() { // arrange var zipCode = new ZipCodeModel { Id = 3, CityId = 2, Zip = 123, Latitude = 10, Longitude = 20 }; var city = new CityModel { Id = 2, Name = "test" }; var navigationsServiceMock = new Mock <IMvxNavigationService>(MockBehavior.Loose); var alertServiceMock = MockHelpers.CreateAlertService(); var zipCodesRepositoryMock = new Mock <IZipCodesRepository>(MockBehavior.Loose); zipCodesRepositoryMock.Setup(mock => mock.GetById(It.IsAny <int>())) .Returns(zipCode); zipCodesRepositoryMock.Setup(mock => mock.GetNearby(It.IsAny <int>(), It.IsAny <int>())) .Returns(new[] { zipCode }); var citiesRepositoryMock = new Mock <ICitiesRepository>(MockBehavior.Loose); citiesRepositoryMock.Setup(mock => mock.GetById(It.IsAny <int>())) .Returns(city); var viewModel = new ZipCodeViewModel( navigationsServiceMock.Object, alertServiceMock.Object, zipCodesRepositoryMock.Object, citiesRepositoryMock.Object ); // act await viewModel.LoadCommand.ExecuteAsync(); await viewModel.SelectCommand.ExecuteAsync(viewModel.Nearby.First()); // assert navigationsServiceMock.Verify(mock => mock.Navigate <ZipCodeViewModel, ZipCodeViewModel.Parameter>( It.Is <ZipCodeViewModel.Parameter>(item => item.ZipCodeId == 3), It.IsAny <IMvxBundle>() ), Times.Once()); }
public async Task LoadCommand_CallsZipCodesRepository_LoadNearbyData() { // arrange var zipCode = new ZipCodeModel { Id = 3, CityId = 2, Zip = 123, Latitude = 10, Longitude = 20 }; var city = new CityModel { Id = 2, Name = "test" }; var navigationsServiceMock = new Mock <IMvxNavigationService>(MockBehavior.Loose); var alertServiceMock = MockHelpers.CreateAlertService(); var zipCodesRepositoryMock = new Mock <IZipCodesRepository>(MockBehavior.Loose); zipCodesRepositoryMock.Setup(mock => mock.GetById(It.IsAny <int>())) .Returns(zipCode); zipCodesRepositoryMock.Setup(mock => mock.GetNearby(It.IsAny <int>(), It.IsAny <int>())) .Returns(new[] { zipCode }); var citiesRepositoryMock = new Mock <ICitiesRepository>(MockBehavior.Loose); citiesRepositoryMock.Setup(mock => mock.GetById(It.IsAny <int>())) .Returns(city); var viewModel = new ZipCodeViewModel( navigationsServiceMock.Object, alertServiceMock.Object, zipCodesRepositoryMock.Object, citiesRepositoryMock.Object ); // act await viewModel.Initialize(new ZipCodeViewModel.Parameter(3)); await viewModel.LoadCommand.ExecuteAsync(); // assert zipCodesRepositoryMock.Verify(mock => mock.GetNearby( It.Is <int>(item => item == 3), It.Is <int>(item => item == Configuration.NearbyZipCodesCount) ), Times.Once()); }
public async Task LoadCommand_SetsGroupsInCorrectOrder() { // arrange var cities = new[] { new CityModel { Id = 1, Name = "ACity" }, new CityModel { Id = 2, Name = "ACity2" }, new CityModel { Id = 3, Name = "CCity2" } }; var navigationsServiceMock = new Mock <IMvxNavigationService>(MockBehavior.Loose); var alertServiceMock = MockHelpers.CreateAlertService(); var citiesRepositoryMock = new Mock <ICitiesRepository>(MockBehavior.Loose); citiesRepositoryMock.Setup(mock => mock.GetAll()) .Returns(cities); var zipCodesRepositoryMock = new Mock <IZipCodesRepository>(MockBehavior.Loose); var viewModel = new CitiesViewModel( navigationsServiceMock.Object, alertServiceMock.Object, citiesRepositoryMock.Object, zipCodesRepositoryMock.Object ); // act await viewModel.LoadCommand.ExecuteAsync(); // assert Assert.AreEqual(1, viewModel.Items.First().First().Model.Id); Assert.AreEqual(2, viewModel.Items.First().Last().Model.Id); Assert.AreEqual(3, viewModel.Items.Last().First().Model.Id); }
public async Task LoadCommand_CallsCityRepository_SetCityData() { // arrange var zipCode = new ZipCodeModel { Id = 3, CityId = 2, Zip = 123, Latitude = 10, Longitude = 20 }; var city = new CityModel { Id = 2, Name = "test" }; var navigationsServiceMock = new Mock <IMvxNavigationService>(MockBehavior.Loose); var alertServiceMock = MockHelpers.CreateAlertService(); var zipCodesRepositoryMock = new Mock <IZipCodesRepository>(MockBehavior.Loose); zipCodesRepositoryMock.Setup(mock => mock.GetById(It.IsAny <int>())) .Returns(zipCode); var citiesRepositoryMock = new Mock <ICitiesRepository>(MockBehavior.Loose); citiesRepositoryMock.Setup(mock => mock.GetById(It.IsAny <int>())) .Returns(city); var viewModel = new ZipCodeViewModel( navigationsServiceMock.Object, alertServiceMock.Object, zipCodesRepositoryMock.Object, citiesRepositoryMock.Object ); // act await viewModel.Initialize(new ZipCodeViewModel.Parameter(3)); await viewModel.LoadCommand.ExecuteAsync(); // assert Assert.AreEqual(city.Name, viewModel.City); }
public async Task SelectCommand_CallsAlertService_OneZipCode_ZipCodeNotFound() { // arrange var navigationsServiceMock = new Mock <IMvxNavigationService>(MockBehavior.Loose); var alertServiceMock = MockHelpers.CreateAlertService(); var citiesRepositoryMock = new Mock <ICitiesRepository>(MockBehavior.Loose); citiesRepositoryMock.Setup(mock => mock.GetAll()) .Returns(new[] { new CityModel { Id = 1 } }); var zipCodesRepositoryMock = new Mock <IZipCodesRepository>(MockBehavior.Loose); zipCodesRepositoryMock.Setup(mock => mock.GetZipCodesCount(It.IsAny <int>())) .Returns(1); zipCodesRepositoryMock.Setup(mock => mock.GetFirstForCity(It.IsAny <int>())) .Returns <ZipCodeModel>(null); var viewModel = new CitiesViewModel( navigationsServiceMock.Object, alertServiceMock.Object, citiesRepositoryMock.Object, zipCodesRepositoryMock.Object ); // act await viewModel.LoadCommand.ExecuteAsync(); await viewModel.SelectCommand.ExecuteAsync(viewModel.Items.First().First()); // assert alertServiceMock.Verify(mock => mock.Alert( It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <Action>() ), Times.Once()); }
public async Task LoadCommand_CallsUpdateService() { // arrange var navigationsServiceMock = new Mock <IMvxNavigationService>(MockBehavior.Loose); var alertServiceMock = MockHelpers.CreateAlertService(); var updateServiceMock = new Mock <IUpdateService>(MockBehavior.Loose); var viewModel = new UpdateViewModel( navigationsServiceMock.Object, alertServiceMock.Object, updateServiceMock.Object ); // act await viewModel.LoadCommand.ExecuteAsync(); // assert updateServiceMock.Verify(mock => mock.UpdateAsync( It.IsAny <CancellationToken>() ), Times.Once()); }
public async Task LoadCommand_NavigatesToCorrectViewModel_UpdateSuccessful() { // arrange var navigationsServiceMock = new Mock <IMvxNavigationService>(MockBehavior.Loose); var alertServiceMock = MockHelpers.CreateAlertService(); var updateServiceMock = new Mock <IUpdateService>(MockBehavior.Loose); var viewModel = new UpdateViewModel( navigationsServiceMock.Object, alertServiceMock.Object, updateServiceMock.Object ); // act await viewModel.LoadCommand.ExecuteAsync(); // assert navigationsServiceMock.Verify(mock => mock.Navigate <CitiesViewModel>( It.IsAny <IMvxBundle>() ), Times.Once()); }
public async Task LoadCommand_CallsCitiesRepository() { // arrange var navigationsServiceMock = new Mock <IMvxNavigationService>(MockBehavior.Loose); var alertServiceMock = MockHelpers.CreateAlertService(); var citiesRepositoryMock = new Mock <ICitiesRepository>(MockBehavior.Loose); var zipCodesRepositoryMock = new Mock <IZipCodesRepository>(MockBehavior.Loose); var viewModel = new CitiesViewModel( navigationsServiceMock.Object, alertServiceMock.Object, citiesRepositoryMock.Object, zipCodesRepositoryMock.Object ); // act await viewModel.LoadCommand.ExecuteAsync(); // assert citiesRepositoryMock.Verify(mock => mock.GetAll(), Times.Once()); }