Esempio n. 1
0
        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));
        }
Esempio n. 2
0
 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)));
 }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        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]));
        }
Esempio n. 5
0
        public async Task GetNoStateExistsReturnsNull()
        {
            SpfHistoryEntityState state = await _dao.Get(Id);

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