Пример #1
0
        public ActionResult GetPersonDetails(string personName)
        {
            var person = _starWarsService.GetPersonByName(personName);
            var model  = Mapper.Map <PersonViewModel>(person);

            return(View(model));
        }
        public void TestGetPersonByName()
        {
            var homeworldUrl  = "testHomeworldUrl";
            var film1Url      = "testFilm1Url";
            var species1Url   = "testSpecies1Url";
            var vehicle1Url   = "testVehicle1Url";
            var starship1Url  = "testStarship1Url";
            var peopleJson    = "{\"results\":[{\"name\": \"Luke Skywalker\", \"height\": \"172\", \"mass\": \"77\", \"hair_color\": \"blond\", \"skin_color\": \"fair\", \"eye_color\": \"blue\", \"birth_year\": \"19BBY\", \"gender\": \"male\", \"homeworld\": \"" + homeworldUrl + "\", \"films\": [\"" + film1Url + "\"], \"species\": [\"" + species1Url + "\"], \"vehicles\": [\"" + vehicle1Url + "\"], \"starships\": [\"" + starship1Url + "\"]}]}";
            var homeworldJson = "{\"name\": \"Alderaan\", \"rotation_period\": \"24\", \"orbital_period\": \"364\", \"diameter\": \"12500\", \"climate\": \"temperate\",\"gravity\": \"1 standard\",\"terrain\": \"grasslands, mountains\",\"surface_water\": \"40\",\"population\": \"2000000000\",\"residents\": [\"1\",\"2\"],\"films\": [\"1\"]}";
            var film1Json     = "{\"title\": \"The Empire Strikes Back\"}";
            var species1Json  = "{\"name\": \"Human\"}";
            var vehicle1Json  = "{\"name\": \"Snowspeeder\"}";
            var starship1Json = "{\"name\": \"X-wing\"}";

            _mockHttpService.JsonResponses["https://swapi.co/api/people/"] = peopleJson;
            _mockHttpService.JsonResponses[homeworldUrl] = homeworldJson;
            _mockHttpService.JsonResponses[film1Url]     = film1Json;
            _mockHttpService.JsonResponses[species1Url]  = species1Json;
            _mockHttpService.JsonResponses[vehicle1Url]  = vehicle1Json;
            _mockHttpService.JsonResponses[starship1Url] = starship1Json;

            var person = _starWarsService.GetPersonByName("Luke Skywalker");

            // Make sure json is translated to correct attributes
            Assert.AreEqual(person.Height, "172");
            Assert.AreEqual(person.Weight, "77");
            Assert.AreEqual(person.HairColor, "blond");
            Assert.AreEqual(person.SkinColor, "fair");
            Assert.AreEqual(person.EyeColor, "blue");
            Assert.AreEqual(person.BirthYear, "19BBY");
            Assert.AreEqual(person.Gender, "male");
            Assert.AreEqual(person.Homeworld, "Alderaan");
            Assert.AreEqual(person.Films.Count, 1);
            Assert.IsTrue(person.Films.Contains("The Empire Strikes Back"));
            Assert.AreEqual(person.Species.Count, 1);
            Assert.IsTrue(person.Species.Contains("Human"));
            Assert.AreEqual(person.Vehicles.Count, 1);
            Assert.IsTrue(person.Vehicles.Contains("Snowspeeder"));
            Assert.AreEqual(person.StarShips.Count, 1);
            Assert.IsTrue(person.StarShips.Contains("X-wing"));
        }