public void UpdateHistoryWithIncomingRecordThatIsDifferentAndHasDkimRecordsCausesUpdate() { DateTime startDate1 = new DateTime(2018, 12, 12); DateTime startDate2 = new DateTime(2018, 12, 14); DkimHistoryRecord dkimHistoryRecord1 = new DkimHistoryRecord(startDate1, null, new List <DkimHistoryRecordEntry> { new DkimHistoryRecordEntry(Selector1, new List <string> { DkimRecord1 }) }); DkimHistoryEntityState state = new DkimHistoryEntityState(Domain1, new List <DkimHistoryRecord> { dkimHistoryRecord1 }); DkimHistoryRecord dkimHistoryRecord2 = new DkimHistoryRecord(startDate2, null, new List <DkimHistoryRecordEntry> { new DkimHistoryRecordEntry(Selector1, new List <string> { DkimRecord2 }) }); state.UpdateHistory(dkimHistoryRecord2); Assert.That(state.Records.Count, Is.EqualTo(2)); Assert.That(state.Records.Last().StartDate, Is.EqualTo(dkimHistoryRecord1.StartDate)); Assert.That(state.Records.Last().EndDate, Is.EqualTo(dkimHistoryRecord2.StartDate)); CollectionAssert.AreEqual(state.Records.Last().Entries, dkimHistoryRecord1.Entries); Assert.That(state.Records.First(), Is.EqualTo(dkimHistoryRecord2)); }
private async Task Insert(DkimHistoryEntityState state) { await MySqlHelper.ExecuteNonQueryAsync(ConnectionString, @"INSERT INTO `dkim_entity_history`(`id`,`state`)VALUES(@domain,@state)", new MySqlParameter("domain", state.Id), new MySqlParameter("state", JsonConvert.SerializeObject(state))); }
public async Task Save(DkimHistoryEntityState state) { string connectionString = await _connectionInfoAsync.GetConnectionStringAsync(); string serializedState = JsonConvert.SerializeObject(state, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }); await MySqlHelper.ExecuteNonQueryAsync(connectionString, DkimEntityHistoryDaoResouces.InsertDkimEntityHistory, new MySqlParameter("domain", state.Id), new MySqlParameter("state", serializedState)); }
public void UpdateEmptyHistoryWithIncomingRecordThatHasDkimRecordsCausesUpdate() { DkimHistoryEntityState state = new DkimHistoryEntityState(Domain1); DkimHistoryRecord dkimHistoryRecord = new DkimHistoryRecord(DateTime.Now, null, new List <DkimHistoryRecordEntry> { new DkimHistoryRecordEntry(Selector1, new List <string> { DkimRecord1 }) }); state.UpdateHistory(dkimHistoryRecord); Assert.That(state.Records.Count, Is.EqualTo(1)); Assert.That(state.Records.First(), Is.EqualTo(dkimHistoryRecord)); }
public void UpdateHistoryWithIncomingRecordThatIsNotDifferentAndHasDkimRecordsDoesntCauseUpdate() { DateTime startDate1 = new DateTime(2018, 12, 12); DkimHistoryRecord dkimHistoryRecord1 = new DkimHistoryRecord(startDate1, null, new List <DkimHistoryRecordEntry> { new DkimHistoryRecordEntry(Selector1, new List <string> { DkimRecord1 }) }); DkimHistoryEntityState state = new DkimHistoryEntityState(Domain1, new List <DkimHistoryRecord> { dkimHistoryRecord1 }); state.UpdateHistory(dkimHistoryRecord1); Assert.That(state.Records.Count, Is.EqualTo(1)); Assert.That(state.Records.First(), Is.EqualTo(dkimHistoryRecord1)); }
public async Task HistoryIsSavedForChanges() { string selector = "dkimRecord"; string selector2 = "dkimRecord2"; DkimHistoryEntityState state = new DkimHistoryEntityState(Id, new List <DkimHistoryRecord> { new DkimHistoryRecord(DateTime.UtcNow.AddDays(-1), null, new List <DkimHistoryRecordEntry> { new DkimHistoryRecordEntry(selector, new List <string>()), }) }); await _dao.Save(state); DkimHistoryEntityState state2 = (await SelectAllHistory(Id)).First(); state2.Records[0].EndDate = DateTime.UtcNow; state2.Records.Insert(0, new DkimHistoryRecord(DateTime.UtcNow.AddDays(-1), null, new List <DkimHistoryRecordEntry> { new DkimHistoryRecordEntry(selector2, new List <string>()), })); await _dao.Save(state2); List <DkimHistoryEntityState> historyStates = await SelectAllHistory(Id); Assert.That(historyStates[0].Records.Count, Is.EqualTo(2)); Assert.That(historyStates[0].Records[0].EndDate, Is.Null); Assert.That(historyStates[0].Records[0].Entries.Count, Is.EqualTo(1)); Assert.That(historyStates[0].Records[0].Entries[0], Is.EqualTo(selector2)); Assert.That(historyStates[0].Records[1].EndDate, Is.Not.Null); Assert.That(historyStates[0].Records[1].Entries.Count, Is.EqualTo(1)); Assert.That(historyStates[0].Records[1].Entries[0], Is.EqualTo(selector)); }
public async Task GetStateExistsReturnsState() { string selector = "dkimRecord"; DkimHistoryEntityState state = new DkimHistoryEntityState(Id, new List <DkimHistoryRecord> { new DkimHistoryRecord(DateTime.UtcNow.AddDays(-1), null, new List <DkimHistoryRecordEntry> { new DkimHistoryRecordEntry(selector, new List <string>()) }) }); await Insert(state); DkimHistoryEntityState stateFromDatabase = await _dao.Get(Id); Assert.That(stateFromDatabase.Id, Is.EqualTo(state.Id)); Assert.That(stateFromDatabase.Records.Count, Is.EqualTo(state.Records.Count)); Assert.That(stateFromDatabase.Records[0].Entries.Count, Is.EqualTo(state.Records[0].Entries.Count)); Assert.That(stateFromDatabase.Records[0].Entries[0], Is.EqualTo(state.Records[0].Entries[0])); }
public async Task GetNoStateExistsReturnsNull() { DkimHistoryEntityState state = await _dao.Get(Id); Assert.That(state, Is.Null); }