public async Task HandleDomainCreatedCreatesDomain() { A.CallTo(() => _tlsRptEntityDao.Get(Id)).Returns <TlsRptEntityState>(null); await _tlsRptEntity.Handle(new DomainCreated(Id, "*****@*****.**", DateTime.Now)); A.CallTo(() => _tlsRptEntityDao.Save(A <TlsRptEntityState> ._)).MustHaveHappenedOnceExactly(); A.CallTo(() => _dispatcher.Dispatch(A <TlsRptEntityCreated> ._, A <string> ._)).MustHaveHappenedOnceExactly(); }
public async Task Handle(DomainCreated message) { string messageId = message.Id.ToLower(); TlsRptEntityState state = await _dao.Get(messageId); if (state != null) { _log.LogError("Ignoring {EventName} as TlsRptEntity already exists for {Id}.", nameof(DomainCreated), messageId); throw new MailCheckException($"Cannot handle event {nameof(DomainCreated)} as TlsRptEntity already exists for {messageId}."); } state = new TlsRptEntityState(messageId, 1, TlsRptState.Created, DateTime.UtcNow); await _dao.Save(state); TlsRptEntityCreated tlsRptEntityCreated = new TlsRptEntityCreated(messageId, state.Version); _dispatcher.Dispatch(tlsRptEntityCreated, _tlsRptEntityConfig.SnsTopicArn); _log.LogInformation("Created TlsRptEntity for {Id}.", messageId); }