public async Task Accept_incoming_navigation_request() { var context = TestAppContext.ConstructTestAppContext(); var firebaseAuthService = context.TestContainer.Resolve <IFirebaseAuthService>(); var userRepository = context.TestContainer.Resolve <IUserRepository>(); var chatRepository = context.TestContainer.Resolve <IChatRepository>(); var mapRepository = context.TestContainer.Resolve <IMapRepository>(); var navigationRequestRepository = context.TestContainer.Resolve <INavigateRequestRepository>(); var requestNavigationService = context.TestContainer.Resolve <INavigationRequestService>(); var sut = context.TestContainer.Resolve <RequestViewModel>(); firebaseAuthService.LoginUser("*****@*****.**", "theday"); var initiator = await userRepository.GetUser("*****@*****.**"); var responder = await userRepository.GetUser("*****@*****.**"); var chat = chatRepository.GetChat(initiator, responder); var otherChat = chatRepository.GetChat(responder, initiator); var navigationRequest = await navigationRequestRepository.GetNavigationRequest(chat); var otherNavigationRequest = await navigationRequestRepository.GetNavigationRequest(otherChat); var testHook = new NavigateRequestHook(); sut.AcceptedHook = testHook; sut.Prepare(new NavigateRequestParameters { Chat = chat, NavigateRequest = navigationRequest }); await requestNavigationService.InitiatNavigationRequest(navigationRequest); await requestNavigationService.AcceptNavigationRequest(otherNavigationRequest); testHook.ResetEvent.WaitOne(); Assert.IsTrue(context.TestNavigationService.TestNavigations.Any(a => a.Parameter is Map)); userRepository.Dispose(); navigationRequestRepository.Dispose(); mapRepository.Dispose(); }
public async Task Incoming_decline_of_request() { var context = TestAppContext.ConstructTestAppContext(); var firebaseAuthService = context.TestContainer.Resolve <IFirebaseAuthService>(); var userRepository = context.TestContainer.Resolve <IUserRepository>(); var chatRepository = context.TestContainer.Resolve <IChatRepository>(); var navigationRequestRepository = context.TestContainer.Resolve <INavigateRequestRepository>(); var requestNavigationService = context.TestContainer.Resolve <INavigationRequestService>(); var sut = context.TestContainer.Resolve <RequestViewModel>(); firebaseAuthService.LoginUser("*****@*****.**", "theday"); var initiator = await userRepository.GetUser("*****@*****.**"); var responder = await userRepository.GetUser("*****@*****.**"); var chat = chatRepository.GetChat(initiator, responder); var otherChat = chatRepository.GetChat(responder, initiator); var navigateRequest = await navigationRequestRepository.GetNavigationRequest(chat); var otherNavigateRequest = await navigationRequestRepository.GetNavigationRequest(otherChat); var testHook = new NavigateRequestHook(); sut.TestHook = testHook; sut.Prepare(new NavigateRequestParameters { Chat = chat, NavigateRequest = navigateRequest }); await requestNavigationService.DeclineNavigationRequest(otherNavigateRequest); testHook.ResetEvent.WaitOne(); Assert.IsTrue(context.TestNavigationService.TestNavigations.Any(a => a.Parameter is ChatParameters)); Assert.AreEqual(string.Empty, navigateRequest.InitiatorEmail); Assert.AreEqual(false, navigateRequest.IsNavigationActive); userRepository.Dispose(); navigationRequestRepository.Dispose(); }
public async Task Recieve_incoming_navigation_request() { var context = TestAppContext.ConstructTestAppContext(); var firebaseAuthService = context.TestContainer.Resolve <IFirebaseAuthService>(); var userRepository = context.TestContainer.Resolve <IUserRepository>(); var chatRepository = context.TestContainer.Resolve <IChatRepository>(); var messageRepository = context.TestContainer.Resolve <IMessageRepository>(); var navigateRequestRepository = context.TestContainer.Resolve <INavigateRequestRepository>(); var testNavigationRequestService = context.TestContainer.Resolve <TestNavigationRequestService>(); var chatViewModel = context.TestContainer.Resolve <ChatViewModel>(); var receivingChatViewModel = context.TestContainer.Resolve <ChatViewModel>(); firebaseAuthService.LoginUser("*****@*****.**", "theday"); var initiator = await userRepository.GetUser("*****@*****.**"); var responder = await userRepository.GetUser("*****@*****.**"); var chat = chatRepository.GetChat(initiator, responder); await testNavigationRequestService.ResetNavigationRequest(chat); await chatViewModel.PrepareAsync(new ChatParameters { Chat = chat }); var testHook = new NavigateRequestHook(); chatViewModel.TestNavigationHook = testHook; await testNavigationRequestService.SendTestNavigationRequest(chat); testHook.ResetEvent.WaitOne(); var navigateRequestNavigation = context.TestNavigationService.TestNavigations.First(f => f.Parameter is NavigateRequestParameters); var navigateRequestParameters = (NavigateRequestParameters)navigateRequestNavigation.Parameter; Assert.AreEqual(responder.EmailAddress, navigateRequestParameters.NavigateRequest.InitiatorEmail); userRepository.Dispose(); messageRepository.Dispose(); navigateRequestRepository.Dispose(); }