Пример #1
0
        public void ExecuteShould_ReturnCityNameNameAlreadyExistsWhenCityFoundInDB()
        {
            var countryName = "Mordor";
            var country     = new CountryMock()
            {
                Id = 1, Name = countryName
            };
            var cityName = "Varna";
            var city     = new CityMock()
            {
                Id = 1, Name = cityName, Country = country
            };

            var providerMock = new Mock <ISqlServerDataProvider>();

            providerMock.Setup(p => p.Countries.Find(It.IsAny <Expression <Func <Country, bool> > >())).Returns(new List <CountryMock>()
            {
                country
            });

            providerMock.Setup(p => p.Cities.Find(It.IsAny <Expression <Func <City, bool> > >())).Returns(new List <CityMock>()
            {
                city
            });

            var writerMock = new Mock <IWriter>();
            var command    = new AddCityCommand(providerMock.Object, writerMock.Object);

            string result = command.Execute(new List <string>()
            {
                cityName, countryName
            });

            Assert.That(result.Contains($"City {cityName}, {countryName} already exists"));
        }
Пример #2
0
        public void ConstructorShould_ReturnInstanceOfAddCityCommandClass_WhenThePassedValuesAreValid()
        {
            var providerMock = new Mock <ISqlServerDataProvider>();
            var writerMock   = new Mock <IWriter>();
            var command      = new AddCityCommand(providerMock.Object, writerMock.Object);

            Assert.IsInstanceOf <AddCityCommand>(command);
        }
Пример #3
0
        public void ExecuteShould_ClearTheScreenOneTIme()
        {
            var providerMock = new Mock <ISqlServerDataProvider>();
            var writerMock   = new Mock <IWriter>();
            var command      = new AddCityCommand(providerMock.Object, writerMock.Object);

            command.Execute(new List <string>());

            writerMock.Verify(x => x.Clear(), Times.Once);
        }
        public async Task <ActionResult <Result> > AddCity([FromBody] AddCityCommand command)
        {
            var result = await Mediator.Send(command);

            if (!result.Succeeded)
            {
                return(BadRequest(result));
            }

            return(Ok(result));
        }
Пример #5
0
        public void ExecuteShould_ReturnNotEnoughParametersWhenTooManyParametersProvided()
        {
            var providerMock = new Mock <ISqlServerDataProvider>();
            var writerMock   = new Mock <IWriter>();
            var command      = new AddCityCommand(providerMock.Object, writerMock.Object);

            string result = command.Execute(new List <string>()
            {
                "Varna", "Bulgaria", "Europe", "Earth"
            });

            Assert.That(result.Contains("Not enough parameters!"));
        }
Пример #6
0
        public async Task <IActionResult> AddCity(CityViewModel viewModel)
        {
            var command = new AddCityCommand()
            {
                CityName = viewModel.CityName
            };
            var response = await _mediator.Send(command);

            if (response.Errors.Any())
            {
                return(BadRequest(response));
            }
            else
            {
                return(PartialView("_WeatherItem", response.Result));
            }
        }
Пример #7
0
        public void ExecuteShould_ReturnNoCountryNameExistsWhenCountryNotFoundInDB()
        {
            var providerMock = new Mock <ISqlServerDataProvider>();

            providerMock.Setup(m => m.Countries.Equals(new List <CountryMock>()
            {
                null
            }));

            var writerMock = new Mock <IWriter>();
            var command    = new AddCityCommand(providerMock.Object, writerMock.Object);

            string result = command.Execute(new List <string>()
            {
                "Varna", "Mordor"
            });

            Assert.That(result.Contains("No country Mordor exists"));
        }
Пример #8
0
        public async Task <IActionResult> Post(AddCityModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (model.CommandId == Guid.Empty)
            {
                model.CommandId = NewId.NextGuid();
            }

            var command = new AddCityCommand(model);

            await Send(command);

            return(Accepted(new PostResult <AddCityCommand>()
            {
                CommandId = model.Id,
                Timestamp = command.Timestamp
            }));
        }
Пример #9
0
        public void ExecuteShould_ReturnCitySuccessfullyAddedIfCityIsAddedToDB()
        {
            var countryName = "Mordor";
            var country     = new CountryMock()
            {
                Id = 1, Name = countryName
            };
            var cityName = "Varna";
            var city     = new CityMock()
            {
                Id = 1, Name = cityName, Country = country
            };

            var providerMock = new Mock <ISqlServerDataProvider>();

            providerMock.Setup(p => p.Countries.Find(It.IsAny <Expression <Func <Country, bool> > >())).Returns(new List <CountryMock>()
            {
                country
            });

            providerMock.Setup(p => p.Cities.Find(It.IsAny <Expression <Func <City, bool> > >())).Returns(new List <CityMock>()
            {
                null
            });

            providerMock.Setup(p => p.Cities.Add(It.IsAny <City>())).Verifiable();
            providerMock.Setup(p => p.UnitOfWork.Finished()).Verifiable();

            var writerMock = new Mock <IWriter>();
            var command    = new AddCityCommand(providerMock.Object, writerMock.Object);

            string result = command.Execute(new List <string>()
            {
                "Plovdiv", countryName
            });

            Assert.That(result.Contains($"City Plovdiv was successfully added"));
        }