public async Task ItShouldGetTheStateIfItExists() { await Insert("ncsc.gov.uk"); SpfSchedulerState state = await _dao.Get("ncsc.gov.uk"); Assert.AreEqual(state.Id, "ncsc.gov.uk"); }
public async Task ItShouldSaveTheStateIfItDoesNotExist() { await _dao.Save(new SpfSchedulerState("ncsc.gov.uk")); await _dao.Get("ncsc.gov.uk"); SpfSchedulerState state = await _dao.Get("ncsc.gov.uk"); Assert.AreEqual(state.Id, "ncsc.gov.uk"); }
public async Task Save(SpfSchedulerState state) { int numberOfRowsAffected = await MySqlHelper.ExecuteNonQueryAsync( await _connectionInfo.GetConnectionStringAsync(), SpfSchedulerDaoResources.InsertSpfRecord, new MySqlParameter("id", state.Id.ToLower())); if (numberOfRowsAffected == 0) { throw new InvalidOperationException($"Didn't save duplicate {nameof(SpfSchedulerState)} for {state.Id}"); } }
public async Task Handle(SpfEntityCreated message) { string domain = message.Id.ToLower(); SpfSchedulerState state = await _dao.Get(domain); if (state == null) { state = new SpfSchedulerState(domain); await _dao.Save(state); _dispatcher.Dispatch(state.ToSpfRecordExpiredMessage(), _config.PublisherConnectionString); _log.LogInformation($"New {nameof(SpfSchedulerState)} saved for {domain}"); } else { _log.LogInformation($"{nameof(SpfSchedulerState)} already exists for {domain}"); } }
public static SpfRecordExpired ToSpfRecordExpiredMessage(this SpfSchedulerState state) => new SpfRecordExpired(state.Id);
public async Task ItShouldReturnNullIfTheStateDoesntExist() { SpfSchedulerState state = await _dao.Get("ncsc.gov.uk"); Assert.That(state, Is.Null); }