public async Task HandleAsync_GivenUsers_UserIsMapped()
        {
            var request = new GetActiveOrganisationUsers(Guid.NewGuid());

            var user = new OrganisationUser(Guid.NewGuid(), Guid.NewGuid(), UserStatus.Active);

            var users = new List <OrganisationUser>()
            {
                user
            };

            var userMapped = new OrganisationUserData()
            {
                UserId         = user.Id.ToString(),
                OrganisationId = user.OrganisationId,
                UserStatus     = (Core.Shared.UserStatus)Enum.Parse(typeof(Core.Shared.UserStatus), user.UserStatus.Value.ToString())
            };

            A.CallTo(() => dataAccess.FetchActiveOrganisationUsers(request.OrganisationId)).Returns(users);
            A.CallTo(() => mapper.Map(user)).Returns(userMapped);

            var result = await handler.HandleAsync(request);

            result.Should().Contain(userMapped);
        }
        public async Task HandleAsync_GivenOrganisationId_FetchActiveOrganisationUsersIsCalledWithId()
        {
            var request = new GetActiveOrganisationUsers(Guid.NewGuid());

            var result = await handler.HandleAsync(request);

            A.CallTo(() => dataAccess.FetchActiveOrganisationUsers(request.OrganisationId)).MustHaveHappened(Repeated.Exactly.Once);
        }
        public async Task <IEnumerable <OrganisationUserData> > HandleAsync(GetActiveOrganisationUsers message)
        {
            var result = new List <OrganisationUserData>();
            var users  = await dataAccess.FetchActiveOrganisationUsers(message.OrganisationId);

            foreach (var user in users)
            {
                result.Add(mapper.Map(user));
            }

            return(result);
        }
        public async Task HandleAsync_GivenListOfUsers_MapperIsCalledForEveryUser()
        {
            var request = new GetActiveOrganisationUsers(Guid.NewGuid());

            var users = new List <OrganisationUser>()
            {
                new OrganisationUser(Guid.NewGuid(), Guid.NewGuid(), UserStatus.Active),
                new OrganisationUser(Guid.NewGuid(), Guid.NewGuid(), UserStatus.Inactive)
            };

            A.CallTo(() => dataAccess.FetchActiveOrganisationUsers(request.OrganisationId)).Returns(users);

            var result = await handler.HandleAsync(request);

            foreach (var user in users)
            {
                A.CallTo(() => mapper.Map(user)).MustHaveHappened(Repeated.Exactly.Once);
            }
        }