public async Task given_valid_parameters_delete_contact_should_success ([Frozen] Mock <IContactRepository> contactRepositoy, entity.Contact contact, DeleteContactHandler handler) { var id = Guid.NewGuid(); contactRepositoy.Setup(r => r.GetAsync(id)).ReturnsAsync(contact); var exception = await Record.ExceptionAsync(async() => await handler.HandleAsync(new DeleteContact(id))); exception.Should().BeNull(); }
public async Task HandleAsync(CreateContact command) { bool isExist = await _repository.IsExist(command.Name, command.Surname, command.CompanyName); if (isExist) { throw new ContactAlreadyExistException(command.Name, command.Surname, command.CompanyName); } var contact = new entity.Contact(Guid.NewGuid(), command.Name, command.Surname, command.CompanyName, DateTime.Now); await _repository.AddAsync(contact); }
public async Task given_invalid_location_should_throw_an_exception ([Frozen] Mock <IContactRepository> contactRepositoy, entity.Contact contact, AddContactInfoHandler handler) { var id = Guid.NewGuid(); contactRepositoy.Setup(r => r.GetAsync(id)).ReturnsAsync(contact); string location = "10"; var exception = await Record.ExceptionAsync(async() => await handler.HandleAsync(new AddContactInfo(id, "Location", location))); exception.Should().NotBeNull(); exception.Should().BeOfType <InvalidLocationException>(); }
public async Task given_invalid_contact_should_throw_an_exception ([Frozen] Mock <IContactRepository> contactRepositoy, AddContactInfoHandler handler) { var id = Guid.NewGuid(); entity.Contact contact = null; contactRepositoy.Setup(r => r.GetAsync(id)).ReturnsAsync(contact); var exception = await Record.ExceptionAsync(async() => await handler.HandleAsync(new AddContactInfo(id, "", ""))); exception.Should().NotBeNull(); exception.Should().BeOfType <ContactNotFoundException>(); }
public static ContactDocument AsDocument(this entity.Contact entity) => new ContactDocument { Id = entity.Id, Name = entity.Name, Surname = entity.Surname, CompanyName = entity.CompanyName, CreatedAt = entity.CreatedAt, ContactInfos = entity.ContactInfos.Select(p => new ContactInfoDocument { InfoType = p.InfoType, InfoContent = p.InfoContent, CreatedAt = p.CreatedAt }) };
public Task UpdateAsync(entity.Contact contact) => _repository.UpdateAsync(contact.AsDocument());
public Task AddAsync(entity.Contact contact) => _repository.AddAsync(contact.AsDocument());