public async Task DeleteAsyncShouldDeleteEngine()
        {
            var options = new DbContextOptionsBuilder <NeedForCarsDbContext>()
                          .UseInMemoryDatabase("DeleteEngineDb")
                          .Options;

            var context = new NeedForCarsDbContext(options);

            var enginesService = new EnginesService(context);

            var engine = new Engine
            {
                Name     = "Name1",
                FuelType = Models.Enums.FuelType.Diesel,
                MaxHP    = 100,
                Creator  = "Creator"
            };

            await context.Engines.AddAsync(engine);

            await context.SaveChangesAsync();

            await enginesService.DeleteAsync(engine);

            var result = await context.Engines.CountAsync();

            Assert.Equal(0, result);
        }
        public async Task UpdateAsyncShouldUpdateEngine()
        {
            var options = new DbContextOptionsBuilder <NeedForCarsDbContext>()
                          .UseInMemoryDatabase("UpdateEngineDb")
                          .Options;

            var context = new NeedForCarsDbContext(options);

            var enginesService = new EnginesService(context);

            var engine = new Engine
            {
                Name     = "Name1",
                FuelType = Models.Enums.FuelType.Diesel,
                MaxHP    = 100,
                Creator  = "Creator"
            };

            await context.Engines.AddAsync(engine);

            await context.SaveChangesAsync();

            engine.Name = "newName";
            await enginesService.UpdateAsync(engine);

            var result = context.Engines.FirstOrDefault().Name;

            Assert.Equal("newName", result);
        }
        public async Task AllShouldReturnEnginesCorrectly()
        {
            var options = new DbContextOptionsBuilder <NeedForCarsDbContext>()
                          .UseInMemoryDatabase("AllEnginesDb")
                          .Options;

            var context = new NeedForCarsDbContext(options);

            var enginesService = new EnginesService(context);

            var engine1 = new Engine
            {
                Name     = "Name1",
                FuelType = Models.Enums.FuelType.Diesel,
                MaxHP    = 100,
                Creator  = "Creator"
            };
            await context.AddAsync(engine1);

            var engine2 = new Engine
            {
                Name     = "Name2",
                FuelType = Models.Enums.FuelType.Diesel,
                MaxHP    = 100,
                Creator  = "Creator"
            };
            await context.AddAsync(engine2);

            await context.SaveChangesAsync();

            var result = enginesService.All().Count();

            Assert.Equal(2, result);
        }
        public async Task GetByIdShouldReturnCorrectEngine()
        {
            var options = new DbContextOptionsBuilder <NeedForCarsDbContext>()
                          .UseInMemoryDatabase("GetEngineByIdDb")
                          .Options;

            var context = new NeedForCarsDbContext(options);

            var enginesService = new EnginesService(context);

            var engine = new Engine
            {
                Name     = "Name1",
                FuelType = Models.Enums.FuelType.Diesel,
                MaxHP    = 100,
                Creator  = "Creator"
            };

            await context.Engines.AddAsync(engine);

            await context.SaveChangesAsync();

            var result = enginesService.GetById(engine.Id);

            Assert.Equal(engine.Id, result.Id);
        }
Example #5
0
        public void GetEngineTest()
        {
            var uowMock     = new Mock <IUnitOfWork>();
            var gEngineMock = new Engine
            {
                Id = 5,
                DescElementSelector = "div .rc .s .st",
                LinkElementSelector = "div .rc .r a",
                Name     = "Google",
                QueryUrl = "https://www.google.com/search?q=",
                ResultElementSelector = ".g",
                TitleElementSelector  = "div .rc .r a"
            };
            var id = 5;

            uowMock.Setup(u => u.Repository <Engine>().GetById(id, false)).Returns(gEngineMock);

            EnginesService   enginesService = new EnginesService(uowMock.Object);
            OperationDetails od             = enginesService.GetById(5);
            OperationDetails result         = new OperationDetails(true, $"Движок с Id={id} найден", "EnginesService.GetById", EnginesService.MapEngineDTO(gEngineMock));

            Assert.Equal(od, result);
        }
        public async Task GetRelatedEntitiesCountShouldReturnCorrectValues()
        {
            var options = new DbContextOptionsBuilder <NeedForCarsDbContext>()
                          .UseInMemoryDatabase("RelatedEntitiesDb_engines")
                          .Options;

            var context = new NeedForCarsDbContext(options);

            var enginesService = new EnginesService(context);

            var make = new Make
            {
                Name        = "Make",
                Description = "Desc"
            };
            await context.Makes.AddAsync(make);

            var model = new Model
            {
                MakeId = make.Id,
                Name   = "Model1",
            };
            await context.Models.AddAsync(model);

            var generation = new Generation
            {
                ModelId = model.Id,
                Name    = "Model1"
            };
            await context.Generations.AddAsync(generation);

            var engine = new Engine
            {
                Name     = "engine",
                MaxHP    = 100,
                FuelType = Models.Enums.FuelType.Diesel,
                Creator  = "creator"
            };
            await context.Engines.AddAsync(engine);

            var car = new Car
            {
                GenerationId = generation.Id,
                EngineId     = engine.Id,
                Transmission = Models.Enums.Transmission.Automatic,
                DriveWheel   = Models.Enums.DriveWheel.AllWheelDrive,
                BeginningOfProductionYear  = 2000,
                BeginningOfProductionMonth = 1
            };
            await context.Cars.AddAsync(car);

            var user = new NeedForCarsUser
            {
                Email        = "*****@*****.**",
                UserName     = "******",
                PasswordHash = "HASHEDPASSWORD",
                FirstName    = "First",
                LastName     = "Last",
                PhoneNumber  = "1234567890"
            };
            await context.Users.AddAsync(user);

            var userCar = new UserCar
            {
                OwnerId             = user.Id,
                CarId               = car.Id,
                Color               = "color",
                ProductionDateYear  = 2000,
                ProductionDateMonth = 1,
                Mileage             = 0
            };
            await context.UserCars.AddAsync(userCar);

            await context.SaveChangesAsync();

            enginesService.GetRelatedEntitiesCount(engine, out int cars, out int userCars);

            Assert.True(cars == 1 && userCars == 1);
        }