Esempio n. 1
0
 /// <summary>Выполнить действие вставки</summary>
 /// <param name="record">Данные</param>
 /// <returns>Вставленная в репозиторий запись</returns>
 public T Insert(T record)
 {
     _recordsByName.Add(GetRecordId(record), record.GetHashCode());
     _records.Add(record.GetHashCode(), record);
     _walWriter.Enqueue(
         _walSerializer.Serialize(new WalEntry <T>(CsvDbAction.Insert, record.GetHashCode(), record))
         );
     return(record);
 }
        public void Serialize_Insert_isCorrect()
        {
            // Arrange
            var expectedString = _insertString;

            // Act
            var actualString = _walSerializer.Serialize(_walEntryInsert);

            // Assert
            Assert.Equal(expectedString, actualString);
        }
Esempio n. 3
0
        public void Insert_isCorrect()
        {
            // Arrange
            var socketToInsert = _testSocket.Clone();

            socketToInsert.SocketName = socketToInsert.SocketName + "#";
            var expectedWalEntryLine = _walSerializer.Serialize(
                new WalEntry <CustomSocket>(CsvDbAction.Insert, socketToInsert.GetHashCode(), socketToInsert));

            // Act
            _repositoryMock.Insert(socketToInsert);

            Thread.Sleep(1500);

            // Assert
            Assert.True(_repositoryMock.GetAllRecords().Contains(socketToInsert),
                        "Ожидаемый разъём не найден в репозитории");
            Assert.True(File.ReadAllText(_testWalFileName, Encoding.UTF8).Contains(expectedWalEntryLine),
                        "Запись о вставке разъёма не присутствует в WAL файле");

            // Clear
            UpdateTestData();
        }