Example #1
0
        public async Task ItShouldGetTheStateIfItExists()
        {
            await Insert("ncsc.gov.uk");

            SpfSchedulerState state = await _dao.Get("ncsc.gov.uk");

            Assert.AreEqual(state.Id, "ncsc.gov.uk");
        }
Example #2
0
        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");
        }
Example #3
0
        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);
Example #6
0
        public async Task ItShouldReturnNullIfTheStateDoesntExist()
        {
            SpfSchedulerState state = await _dao.Get("ncsc.gov.uk");

            Assert.That(state, Is.Null);
        }