Exemple #1
0
 public CitySearchController(IMapperService mapperService, ICitySearchDomainService citySearchDomainService)
 {
     _mapperService           = mapperService;
     _citySearchDomainService = citySearchDomainService;
 }
        public void Startup()
        {
            IEnumerable <CityDto> fakeCities = new List <CityDto>()
            {
                new CityDto()
                {
                    Name            = "London",
                    EstablishedDate = DateTime.Now,
                    CountryCode     = "GB"
                },
                new CityDto()
                {
                    Name            = "Manchester",
                    EstablishedDate = DateTime.Now,
                    CountryCode     = "GB"
                },
                new CityDto()
                {
                    Name            = "Tokyo",
                    EstablishedDate = DateTime.Now,
                    CountryCode     = "JP"
                },
            };

            _mockMapperService = new MapperService();

            _mockDataService = new Mock <ICityDataService>();
            _mockDataService.Setup(x => x.GetCities()).Returns(fakeCities);

            _mockDataService
            .Setup(x => x.CreateCity(It.IsAny <CityDto>()))
            .Verifiable();

            _mockCountryRestService = new Mock <ICountryRestService>();
            _mockWeatherRestService = new Mock <IWeatherRestService>();

            // todo: DEBT => I know that this can be done with a lambda which would make it neater.
            // I'm running a little low on time so I'll stick with this for now.
            // given more time I'd like to add this to a test helper class.

            _mockCountryRestService
            .Setup(x => x.GetCountryData("GB")).Returns(
                new Country()
            {
                Alpha2Code = "GB",
                Currencies = new EditableList <Currency>
                {
                    new Currency
                    {
                        Code   = "GBP",
                        Name   = "Pounds",
                        Symbol = "£"
                    }
                }
            });
            _mockCountryRestService
            .Setup(x => x.GetCountryData("JP")).Returns(
                new Country()
            {
                Alpha2Code = "JP",
                Currencies = new EditableList <Currency>
                {
                    new Currency
                    {
                        Code   = "YEN",
                        Name   = "YEN",
                        Symbol = "¥"
                    }
                }
            });

            _sutDomainService = new CitySearchDomainService(_mockMapperService, _mockDataService.Object, _mockWeatherRestService.Object, _mockCountryRestService.Object);
        }