コード例 #1
0
        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));
        }
コード例 #2
0
        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());
        }