public async Task WhenNoPets_ThenReturnEmptyList()
            {
                var mockPetstoreClient = new Mock <IPetstoreClient>();

                mockPetstoreClient.Setup(x => x.FindPetsByStatusAsync(new[] { Anonymous.Available })).ReturnsAsync(null as ICollection <Pet>);

                var service = new PetStoreService(mockPetstoreClient.Object);
                var pets    = await service.GetAvailablePets();

                Assert.NotNull(pets);
                Assert.Empty(pets);
            }
            public async Task WhenPets_ThenReturnList()
            {
                var mockPetstoreClient = new Mock <IPetstoreClient>();
                var pets = new Pet[] {
                    new Pet {
                        Id = 1, Name = "Test 1", Status = PetStatus.Available
                    },
                    new Pet {
                        Id = 2, Name = "Test 2", Status = PetStatus.Available
                    }
                };

                mockPetstoreClient.Setup(x => x.FindPetsByStatusAsync(new[] { Anonymous.Available })).ReturnsAsync(pets);

                var service    = new PetStoreService(mockPetstoreClient.Object);
                var petsResult = await service.GetAvailablePets();

                Assert.NotNull(petsResult);
                Assert.Equal(pets, petsResult);
            }
Example #3
0
        static async Task Main(string[] args)
        {
            Console.WriteLine("Available Pets:");

            var service       = new PetStoreService(new PetstoreClient(new HttpClient()));
            var availablePets = await service.GetAvailablePets();

            var sortedByCategory = service.SortPetsByCategoryAndName(availablePets);

            foreach (var category in sortedByCategory)
            {
                Console.WriteLine(category.Key);

                foreach (var pet in category.Value)
                {
                    Console.WriteLine($"    { pet.Name }, Id: {pet.Id})");
                }
            }

            Console.ReadLine();
        }