Exemplo n.º 1
0
        private static async Task <bool> VisitFriend()
        {
            return(await Task.Run(async() =>
            {
                var friends = await _friendsListService.GetFriendsList();

                Console.WriteLine($"{Environment.NewLine}Selecione um amigo para visitar!(para selecionar pressione o número que o representa)");

                friends.ForEach(friend =>
                {
                    Console.WriteLine($"  {friend.Id} - {friend.Nome}   - Latitude: {friend.Coordinates.Latitude}  - Longitude: {friend.Coordinates.Longitude}");
                });

                Friend selectedFriend = null;

                while (selectedFriend == null)
                {
                    var selectedFriendId = Console.ReadKey().KeyChar.ToString();

                    selectedFriend = friends.FirstOrDefault(x => x.Id.ToString() == selectedFriendId);

                    if (selectedFriend == null)
                    {
                        Console.WriteLine($"{Environment.NewLine}Por favor, selecione um amigo entre os disponíveis na lista.");
                    }
                }

                var nearestFriends = await _nearestFriendsService.GetNearestFriends(selectedFriend);

                Console.WriteLine($"{Environment.NewLine}Os amigos mais próximos de {selectedFriend.Nome} são:");
                nearestFriends.ForEach(nearestFriend =>
                {
                    Console.WriteLine($"{nearestFriend.Nome} - distância: {selectedFriend.Coordinates.DistanceTo(nearestFriend.Coordinates)}");
                });

                Console.WriteLine($"{Environment.NewLine} Vai visitar outro amigo? s/n");

                var answer = Console.ReadKey().KeyChar;

                if (answer == 's')
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }));
        }
        public void AssureReferenceFriendIsNotPartOfTheResult()
        {
            Task.Run(async() => {
                var mockFriendRepository = new Mock <IFriendRepository>();
                mockFriendRepository.Setup(x => x.GetAllLazy()).Returns(() => getDefaultFriendList());

                var friends = await getDefaultFriendList();
                var friend  = friends.OrderBy(x => Guid.NewGuid()).FirstOrDefault();

                var nearestFriendsService = new NearestFriendsService(mockFriendRepository.Object);

                var nearestFriends = await nearestFriendsService.GetNearestFriends(friend);

                Assert.AreEqual(false, nearestFriends.All(x => x.Id != friend.Id));
            });
        }