Пример #1
0
        public async Task <ActionResult> UnshareContact(Guid id)
        {
            var contactDetailsQuery = new ContactDetailsQuery(id);
            var contact             = await Mediator.Send(contactDetailsQuery);

            if (contact == null)
            {
                return(BadRequest("Contact not found"));
            }

            var  loggedUserQuery = new LoggedUserQuery();
            User user            = await Mediator.Send(loggedUserQuery);

            var unshareContactCommand = new UnshareContactCommand(contact.Id, user.Id);
            await Mediator.Send(unshareContactCommand);

            return(NoContent());
        }
        public async void Unshares_Contact_Successfully()
        {
            //Arrange
            var contact     = Context.Contacts.First();
            var userContact = Context.UserContacts.Where(x => x.ContactId == contact.Id).FirstOrDefault();
            var user        = Context.Users.Where(x => x.Id == userContact.UserId).FirstOrDefault();

            Mediator.Setup(x => x.Send(It.IsAny <UnshareContactCommand>(), new CancellationToken()))
            .ReturnsAsync(Unit.Value);

            //Act
            var unshareContactCommand = new UnshareContactCommand(contact.Id, user.Id);
            var handler = new UnshareContactCommandHandler(Context);
            var result  = await handler.Handle(unshareContactCommand, new CancellationToken());

            //Assert
            result.Should()
            .BeOfType <Unit>()
            .Equals(Unit.Value);

            DbContextFactory.Destroy(Context);
        }