private async Task Process(Message message)
 {
     SnsMessage        snsMessage        = JsonConvert.DeserializeObject <SnsMessage>(message.Body);
     SpfConfigsUpdated spfConfigsUpdated = JsonConvert.DeserializeObject <SpfConfigsUpdated>(snsMessage.Message);
     List <SpfConfigReadModelEntity> readModelEntities = spfConfigsUpdated.SpfConfigs.Select(Process).ToList();
     await _dao.InsertOrUpdate(readModelEntities);
 }
        public void NewAndOldRecordsMapped()
        {
            List <RecordEntity> entities = new List <RecordEntity>
            {
                new RecordEntity(1, new DomainEntity(Domain1Id, Domain1Name), new SpfRecordInfo(Record1), RCode.NoError, 0),
                new RecordEntity(null, new DomainEntity(Domain2Id, Domain2Name), new SpfRecordInfo(Record2), RCode.NoError, 0),
                new RecordEntity(3, new DomainEntity(Domain3Id, Domain3Name), new SpfRecordInfo(Record3), RCode.NoError, 0)
            };

            SpfConfigsUpdated configs = _mapper.Map(entities);

            Assert.That(configs.SpfConfigs.Count, Is.EqualTo(3));
        }
        public void NullRecordsResultInEmptyList()
        {
            List <RecordEntity> entities = new List <RecordEntity>
            {
                new RecordEntity(null, new DomainEntity(Domain1Id, Domain1Name), new SpfRecordInfo(null), RCode.NoError, 0),
            };

            SpfConfigsUpdated configs = _mapper.Map(entities);

            Assert.That(configs.SpfConfigs.Count, Is.EqualTo(1));

            Assert.That(configs.SpfConfigs[0].Domain.Id, Is.EqualTo(Domain1Id));
            Assert.That(configs.SpfConfigs[0].Domain.Name, Is.EqualTo(Domain1Name));
            Assert.That(configs.SpfConfigs[0].Records.Count, Is.EqualTo(0));
        }
        public void RecordEntitiesAreCorrectlyMapped()
        {
            List <RecordEntity> entities = new List <RecordEntity>
            {
                new RecordEntity(null, new DomainEntity(Domain1Id, Domain1Name), new SpfRecordInfo(Record1), RCode.NoError, 0),
                new RecordEntity(null, new DomainEntity(Domain1Id, Domain1Name), new SpfRecordInfo(Record2), RCode.NoError, 0),
                new RecordEntity(null, new DomainEntity(Domain2Id, Domain2Name), new SpfRecordInfo(Record3), RCode.NoError, 0)
            };

            SpfConfigsUpdated configs = _mapper.Map(entities);

            Assert.That(configs.SpfConfigs.Count, Is.EqualTo(2));

            Assert.That(configs.SpfConfigs[0].Domain.Id, Is.EqualTo(Domain1Id));
            Assert.That(configs.SpfConfigs[0].Domain.Name, Is.EqualTo(Domain1Name));
            Assert.That(configs.SpfConfigs[0].Records.Count, Is.EqualTo(2));
            Assert.That(configs.SpfConfigs[0].Records[0], Is.EqualTo(Record1));
            Assert.That(configs.SpfConfigs[0].Records[1], Is.EqualTo(Record2));

            Assert.That(configs.SpfConfigs[1].Domain.Id, Is.EqualTo(Domain2Id));
            Assert.That(configs.SpfConfigs[1].Domain.Name, Is.EqualTo(Domain2Name));
            Assert.That(configs.SpfConfigs[1].Records.Count, Is.EqualTo(1));
            Assert.That(configs.SpfConfigs[1].Records[0], Is.EqualTo(Record3));
        }