public async Task UponSuccess_KeepsTrackOfKnownUser() { var requestBuilder = A.Fake <IHttpRequestMessageBuilder>(); A.CallTo(() => _webRequestSender.NewRequest(A <HttpMethod> ._, A <Uri> ._)).Returns(requestBuilder); var httpRequestMessage = new HttpRequestMessage(); A.CallTo(() => requestBuilder.Build()).Returns(httpRequestMessage); var googleUserJson = "{I am the user}"; var httpResponseMessage = new HttpResponseMessage { Content = new StringContent(googleUserJson) }; A.CallTo(() => _webRequestSender.SendRequestAsync(httpRequestMessage)).Returns(httpResponseMessage); var googleUser = new GoogleUserDataRecord { Id = "CorrelationId123", Given_name = "John", Family_name = "Snow" }; A.CallTo(() => _jsonSerializer.Deserialize <GoogleUserDataRecord>(googleUserJson)).Returns(googleUser); var knownUser = new KnownUserRecord { UniqueId = Guid.NewGuid(), ExternalCorrelationId = googleUser.Id, FirstName = googleUser.Given_name, LastName = googleUser.Family_name }; A.CallTo(() => _knownUserFromGoogleUserBuilder.BuildKnownUser(googleUser)).Returns(knownUser); await _sut.ActivateGooglePlusUser(_accessToken); A.CallTo(() => _knownUserDataService.AddOrUpdateKnownUser(knownUser)).MustHaveHappened(); }
public override void SetUp() { base.SetUp(); _googleUser = new GoogleUserDataRecord { Id = "G000123", Given_name = "Pol", Family_name = "Tak" }; }
public async Task SendsToTheCorrectGoogleApiUrl() { var googleUser = new GoogleUserDataRecord { Id = "CorrelationId123" }; A.CallTo(() => _jsonSerializer.Deserialize <GoogleUserDataRecord>(A <string> ._)).Returns(googleUser); var expectedUri = new Uri("https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token=" + _accessToken, UriKind.Absolute); await _sut.ActivateGooglePlusUser(_accessToken); A.CallTo(() => _webRequestSender.NewRequest(HttpMethod.Get, expectedUri)).MustHaveHappened(); }
public KnownUserRecord BuildKnownUser(GoogleUserDataRecord googleUser) { if (googleUser == null) { throw new ArgumentNullException(nameof(googleUser)); } if (string.IsNullOrEmpty(googleUser.Id)) { throw new InvalidOperationException("The specified Google user does not have a correlation id, which is required."); } return(new KnownUserRecord { UniqueId = Guid.NewGuid(), ExternalCorrelationId = googleUser.Id, Type = 'G', FirstName = googleUser.Given_name, LastName = googleUser.Family_name, }); }
public async Task UponSuccess_ReturnsCorrelationIdForGoogleUser() { var requestBuilder = A.Fake <IHttpRequestMessageBuilder>(); A.CallTo(() => _webRequestSender.NewRequest(A <HttpMethod> ._, A <Uri> ._)).Returns(requestBuilder); var httpRequestMessage = new HttpRequestMessage(); A.CallTo(() => requestBuilder.Build()).Returns(httpRequestMessage); var googleUserJson = "{I am the user}"; var httpResponseMessage = new HttpResponseMessage { Content = new StringContent(googleUserJson) }; A.CallTo(() => _webRequestSender.SendRequestAsync(httpRequestMessage)).Returns(httpResponseMessage); var googleUser = new GoogleUserDataRecord { Id = "CorrelationId123" }; A.CallTo(() => _jsonSerializer.Deserialize <GoogleUserDataRecord>(googleUserJson)).Returns(googleUser); var actual = await _sut.ActivateGooglePlusUser(_accessToken); actual.Should().Be(googleUser.Id); }