Exemple #1
0
        public CsvRepositoryTest()
        {
            // Определение пути тестовой директории
            _testDir = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "ExpertSystem");
            // Создание тестовой директории
            Directory.CreateDirectory(_testDir);
            // Определение имени тестового CSV файла
            _testCsvFileName = Path.Combine(_testDir, "csvTest.csv");
            // Определение имени тестового WAL файла
            _testWalFileName = Path.Combine(_testDir, "walTest.txt");
            // Обновление тестовых CSV данных
            UpdateTestCsvData();
            // Создание мока репозитория
            var serializer = new CustomSocketSerializer();
            var parser     = new CsvRecordParser <CustomSocket>(serializer);
            var options    = new CsvRepositoryOptions
            {
                CsvFileName    = _testCsvFileName,
                WalFileName    = _testWalFileName,
                IdPropertyName = "SocketName"
            };

            _repositoryMock = new CsvRepository <CustomSocket>(serializer, parser, options);
            // Синхронизируем репозиторий
            UpdateTestWalData();
            _repositoryMock.Sync();
        }
        private Program(ServerProgramOptions options) : base(options)
        {
            var dataPath = Path.Combine(GetThisFileDirectory(), "..", "..", "data", "csvdb");

            var socketSerializer = new CustomSocketSerializer();
            var socketParser     = new CsvRecordParser <CustomSocket>(socketSerializer);
            var socketOptions    = new CsvRepositoryOptions
            {
                IdPropertyName = "SocketName",
                CsvFileName    = Path.Combine(dataPath, "socket.csv"),
                WalFileName    = Path.Combine(dataPath, "wal_socket.txt")
            };
            var socketsRepository =
                new CsvRepository <CustomSocket>(socketSerializer, socketParser, socketOptions).Sync();
            var socketService = new SocketService(socketsRepository);

            var socketGroupSerializer = new SocketGroupSerializer();
            var socketGroupParser     = new CsvRecordParser <SocketGroup>(socketGroupSerializer);
            var socketGroupOptions    = new CsvRepositoryOptions
            {
                IdPropertyName = "GroupName",
                CsvFileName    = Path.Combine(dataPath, "socketGroup.csv"),
                WalFileName    = Path.Combine(dataPath, "wal_socketGroup.txt")
            };
            var socketGroupRepository =
                new CsvRepository <SocketGroup>(socketGroupSerializer, socketGroupParser, socketGroupOptions).Sync();
            var socketGroupService = new GroupService(socketGroupRepository);

            var socketExchangeOptions = new SocketExchangeOptions {
                Version = Options.Version, Debug = options.Debug
            };
            var socketExchange = new SocketExchangeImpl(socketService, socketGroupService, socketExchangeOptions);

            Server = new Grpc.Core.Server
            {
                Services = { SocketExchange.BindService(socketExchange) },
                Ports    = { new ServerPort("localhost", Options.Port, ServerCredentials.Insecure) }
            };
        }