public async Task WhenPostingIdentifiedUserEmail_ItShouldIssueSendIdentifiedUserInformationCommand() { var requester = Requester.Authenticated(UserId.Random()); this.requesterContext.Setup(v => v.GetRequesterAsync()).ReturnsAsync(requester); var data = NewIdentifiedUserData(); data = new IdentifiedUserData { Email = data.Email }; var command = new SendIdentifiedUserInformationCommand( requester, data.IsUpdate, new Email(data.Email), null, null); this.sendIdentifiedUserInformation.Setup(v => v.HandleAsync(command)).Returns(Task.FromResult(0)); var result = await this.controller.PostIdentifiedUserAsync(data); Assert.IsInstanceOfType(result, typeof(OkResult)); this.sendIdentifiedUserInformation.Verify(v => v.HandleAsync(command)); }
public async Task <IHttpActionResult> PostIdentifiedUserAsync(IdentifiedUserData identifiedUserData) { identifiedUserData.AssertBodyProvided("identifiedUserData"); if (string.IsNullOrWhiteSpace(identifiedUserData.Email)) { throw new BadRequestException("Email must be provided when identifying user"); } var requester = await this.requesterContext.GetRequesterAsync(); var command = new SendIdentifiedUserInformationCommand( requester, identifiedUserData.IsUpdate, new Email(identifiedUserData.Email), string.IsNullOrWhiteSpace(identifiedUserData.Name) ? null : identifiedUserData.Name, string.IsNullOrWhiteSpace(identifiedUserData.Username) ? null : new Username(identifiedUserData.Username)); await this.sendIdentifiedUserInformation.HandleAsync(command); return(this.Ok()); }