public async Task DeleteByIdAsync_ShouldSuccessfullyDelete()
        {
            MapperInitializer.InitializeMapper();
            var context = ApplicationDbContextInMemoryFactory.InitializeContext();

            await this.SeedDataAsync(context);

            var truckService            = new TruckService(context);
            var deleteTruckServiceModel = new DeleteTruckServiceModel();

            deleteTruckServiceModel.Id = 1;

            await truckService.DeleteByIdAsync(deleteTruckServiceModel.Id);

            var expectedResult = 1;
            var actualResult   = truckService
                                 .All()
                                 .Count();
            var expectedResult2 = "TRN 2";
            var actualResult2   = truckService
                                  .All()
                                  .First()
                                  .RegistrationNumber;

            Assert.True(expectedResult == actualResult);
            Assert.True(expectedResult2 == actualResult2);
        }
Exemplo n.º 2
0
        public void SetUp()
        {
            _productRepository = A.Fake <IProductRepository>();
            A.CallTo(() => _productRepository.GetProductById(TestId1)).Returns((_testProd1));

            _truckService = new TruckService(_productRepository);
        }
Exemplo n.º 3
0
 public void SetUp()
 {
     _productRepository = A.Fake <IProductRepository>();
     A.CallTo(() => _productRepository.GetProductById(17)).Returns(TestProduct1);
     A.CallTo(() => _productRepository.GetProductById(9)).Returns(TestProduct2);
     A.CallTo(() => _productRepository.GetProductById(1)).Returns(TestProduct3);
     _truckService = new TruckService(_productRepository);
 }
        public async Task CreateAsync_WithOverMaxNameLengthShouldThrowInvalidOperationException()
        {
            MapperInitializer.InitializeMapper();
            var context                 = ApplicationDbContextInMemoryFactory.InitializeContext();
            var truckService            = new TruckService(context);
            var createTruckServiceModel = new CreateTruckServiceModel();
            var truckRegistrationNumber = "qwertyuiop qwertyuiop qwertyuiop qwertyuiop qwertyuiop";

            createTruckServiceModel.RegistrationNumber = truckRegistrationNumber;
            var message = "Truck's Registration number cannot be more than 8 characters.";

            var exception = await Assert.ThrowsAsync <InvalidOperationException>(async() =>
            {
                await truckService.CreateAsync(createTruckServiceModel);
            });

            Assert.Equal(message, exception.Message);
        }
Exemplo n.º 5
0
        public async Task Atualizar_Truck_Valido()
        {
            //Arrange
            var options = new DbContextOptionsBuilder <SqlContext>()
                          .UseInMemoryDatabase(databaseName: $"Test_Sql{Guid.NewGuid()}")
                          .Options;

            TruckCollectionFixture._truckFixture = new TruckFixture();

            var listModelObj = TruckCollectionFixture._truckFixture.GetModelList();
            var TruckObj     = TruckCollectionFixture._truckFixture.GetTruckViewModelRequestMock();

            //Act
            using (var context = new SqlContext(options))
            {
                _modelRepoMock = new Mock <IModelRepository>();
                _modelRepoMock.Setup(r => r.GetAllAsync())
                .ReturnsAsync(listModelObj);

                var truckRepo = new TruckRepository(context, new Mock <ILogger <TruckRepository> >().Object);

                var service = new TruckService(
                    truckRepo,
                    _mapperCreated,
                    new Mock <ILogger <TruckService> >().Object,
                    _modelRepoMock.Object
                    );

                await service.InsertTruck(TruckObj);

                var nomeNovo = Guid.NewGuid().ToString();
                TruckObj.Nome = nomeNovo;
                await service.UpdateTruck(TruckObj, TruckObj.Id);

                var retorno = await service.GetAllTrucks();

                //Assert
                Assert.Equal(retorno.Result.First().Nome, nomeNovo);
            }
        }
Exemplo n.º 6
0
 public TruckController()
 {
     truckService = new TruckService();
 }
Exemplo n.º 7
0
        public async Task LoadTruckOpeningsAsync()
        {
            var TruckOpenings = await KnownException.Wrap(() => TruckService.GetTruckOpenings(), "Cannot get the latest opening information.  Please refresh when online");

            LoadTruckOpeningVMs(TruckOpenings);
        }
Exemplo n.º 8
0
        public MainVM()
        {
            Openings  = new ObservableCollection <TruckOpeningVM>();
            Favorites = new ObservableCollection <FavoriteTruckVM>();

            HomeCommand = new Command(() =>
            {
                Repository.GetObject <INavigationService>().GotoPage("HomePage");
            });
            MapCommand = new Command(() =>
            {
                Repository.GetObject <INavigationService>().GotoPage("MapPage");
            });
            FavoritesCommand = new Command(() =>
            {
                Repository.GetObject <INavigationService>().GotoPage("FavoritesPage");
            });
            SettingsCommand = new Command(() =>
            {
                Repository.GetObject <INavigationService>().GotoPage("SettingsPage");
            });

            RefreshCommand = new Command(async() =>
            {
                await LoadTruckOpeningsAsync();
            });

            LoadTruckExecutor = new TaskExecutor <string>(async(TruckId) =>
            {
                var truck = await KnownException.Wrap <Truck>(() => TruckService.GetTruck(TruckId), "Cannot get truck information");

                LoadTruckVM(truck);
            });

            SelectTruckCommand = new Command(async(o) =>
            {
                var TruckId   = o as string;
                SelectedTruck = null;
                Repository.GetObject <INavigationService>().GotoPage("TruckPage");
                await LoadTruckExecutor.ExecuteAsync(TruckId);
            });

            SendTruckRatingExecutor = new TaskExecutor <TruckVM>(async(o) =>
            {
                var VM = o as TruckVM;

                await KnownException.Wrap(() => TruckService.SendRating(VM.Id, (int)VM.Rating), "There was an issue sending the rating");
                var truck = await KnownException.Wrap(() => TruckService.GetTruck(VM.Id), "Cannot get the latest truck information");
                VM.Rating = truck.Rating;
            });

            ToggleFavoriteCommand = new Command(async(o) =>
            {
                var VM        = o as TruckVM;
                var Value     = VM.IsFavorite;
                VM.IsFavorite = !VM.IsFavorite;
                var FoundFav  = Favorites.FirstOrDefault(f => f.Id.Equals(VM.Id));
                if (Value == false)
                {
                    if (FoundFav == null)
                    {
                        Favorites.Add(new FavoriteTruckVM()
                        {
                            Id       = VM.Id,
                            Title    = VM.Title,
                            ImageUrl = VM.ImageUrl,
                        });
                    }

                    Repository.GetObject <IToastService>().DoBasicToast(VM.Id, "Added Favorite", $"{VM.Title} was added to favorites", VM.ImageUrl);
                }
                else
                {
                    if (FoundFav != null)
                    {
                        Favorites.Remove(FoundFav);
                    }

                    Repository.GetObject <IToastService>().DoBasicToast(VM.Id, "Removed Favorite", $"{VM.Title} was removed from favorites", VM.ImageUrl);
                }
                var Favs = Favorites.Select(f => new Favorite()
                {
                    Id       = f.Id,
                    Title    = f.Title,
                    ImageUrl = f.ImageUrl,
                });
                await FavoritesService.Save(Favs);
            });

            ToggleTilePinCommand = new Command(async(o) =>
            {
                var VM    = o as TruckVM;
                var Value = VM.IsPinned;

                var tps             = Repository.GetObject <ITilePinService>();
                var IsPinnedAlready = tps.IsPinned(VM.Id);
                if (Value == false)
                {
                    if (IsPinnedAlready == false)
                    {
                        VM.IsPinned = await tps.PinTile(VM.Id, VM.Title, VM.ImageUrl);
                    }
                    else
                    {
                        VM.IsPinned = true;
                    }
                }
                else
                {
                    if (IsPinnedAlready == true)
                    {
                        await tps.UnPinTile(VM.Id);
                    }
                    VM.IsPinned = false;
                }
            });

            ClearFavoritesCommand = new Command(async() =>
            {
                await FavoritesService.Clear();
                Favorites.Clear();
            });
        }