public async Task HistoryIsSavedForChanges() { string spfRecord1 = "spfRecord1"; string spfRecord2 = "spfRecord2"; SpfHistoryEntityState state = new SpfHistoryEntityState(Id, new List <SpfHistoryRecord> { new SpfHistoryRecord(DateTime.UtcNow.AddDays(-1), null, new List <string> { spfRecord1 }) }); await _dao.Save(state); SpfHistoryEntityState state2 = (await SelectAllHistory(Id)).First(); state2.SpfHistory[0].EndDate = DateTime.UtcNow; state2.SpfHistory.Insert(0, new SpfHistoryRecord(DateTime.UtcNow, null, new List <string> { spfRecord2 })); await _dao.Save(state2); List <SpfHistoryEntityState> historyStates = await SelectAllHistory(Id); Assert.That(historyStates[0].SpfHistory.Count, Is.EqualTo(2)); Assert.That(historyStates[0].SpfHistory[0].EndDate, Is.Null); Assert.That(historyStates[0].SpfHistory[0].SpfRecords.Count, Is.EqualTo(1)); Assert.That(historyStates[0].SpfHistory[0].SpfRecords[0], Is.EqualTo(spfRecord2)); Assert.That(historyStates[0].SpfHistory[1].EndDate, Is.Not.Null); Assert.That(historyStates[0].SpfHistory[1].SpfRecords.Count, Is.EqualTo(1)); Assert.That(historyStates[0].SpfHistory[1].SpfRecords[0], Is.EqualTo(spfRecord1)); }
private async Task Insert(SpfHistoryEntityState state) { await MySqlHelper.ExecuteNonQueryAsync(ConnectionString, @"INSERT INTO `spf_entity_history`(`id`,`state`)VALUES(@domain,@state)", new MySqlParameter("domain", state.Id), new MySqlParameter("state", JsonConvert.SerializeObject(state))); }
public async Task Save(SpfHistoryEntityState state) { string connectionString = await _connectionInfoAsync.GetConnectionStringAsync(); string serializedState = JsonConvert.SerializeObject(state, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }); await MySqlHelper.ExecuteNonQueryAsync(connectionString, SpfEntityHistoryDaoResouces.InsertSpfEntityHistory, new MySqlParameter("domain", state.Id), new MySqlParameter("state", serializedState)); }
public async Task GetStateExistsReturnsState() { string spfRecord = "spfRecord1"; SpfHistoryEntityState state = new SpfHistoryEntityState(Id, new List <SpfHistoryRecord> { new SpfHistoryRecord(DateTime.UtcNow.AddDays(-1), null, new List <string> { spfRecord }) }); await Insert(state); SpfHistoryEntityState stateFromDatabase = await _dao.Get(Id); Assert.That(stateFromDatabase.Id, Is.EqualTo(state.Id)); Assert.That(stateFromDatabase.SpfHistory.Count, Is.EqualTo(state.SpfHistory.Count)); Assert.That(stateFromDatabase.SpfHistory[0].SpfRecords.Count, Is.EqualTo(state.SpfHistory[0].SpfRecords.Count)); Assert.That(stateFromDatabase.SpfHistory[0].SpfRecords[0], Is.EqualTo(state.SpfHistory[0].SpfRecords[0])); }
public async Task GetNoStateExistsReturnsNull() { SpfHistoryEntityState state = await _dao.Get(Id); Assert.That(state, Is.Null); }