public void GetById_Integration_ReturnsData() { string filePath = Path.Combine(AppContext.BaseDirectory, Path.GetRandomFileName() + ".dbtest"); using (SQLiteDbContext dbContext = new SQLiteDbContext(filePath)) { dbContext.Initialise(); ILogFileRepository logFileRepo = new LogFileRepository(dbContext); // create the project ProjectModel project = DataHelper.CreateProjectModel(); DataHelper.InsertProjectModel(dbContext, project); // create the log file record LogFileModel logFile = DataHelper.CreateLogFileModel(project.Id); DataHelper.InsertLogFileModel(dbContext, logFile); int logFileId = dbContext.ExecuteScalar <int>("select last_insert_rowid()"); LogFileModel result = logFileRepo.GetById(logFileId); Assert.IsNotNull(result); Assert.AreEqual(logFile.FileHash, result.FileHash); } }
public void GetByHash_Integration_ReturnsData() { string filePath = Path.Combine(AppContext.BaseDirectory, Path.GetRandomFileName() + ".dbtest"); string fileHash = Guid.NewGuid().ToString(); using (SQLiteDbContext dbContext = new SQLiteDbContext(filePath)) { dbContext.Initialise(); ILogFileRepository logFileRepo = new LogFileRepository(dbContext); // create the project ProjectModel project = DataHelper.CreateProjectModel(); DataHelper.InsertProjectModel(dbContext, project); // create the log file record LogFileModel logFile = DataHelper.CreateLogFileModel(); logFile.ProjectId = project.Id; logFile.FileHash = fileHash; DataHelper.InsertLogFileModel(dbContext, logFile); LogFileModel result = logFileRepo.GetByHash(project.Id, fileHash); Assert.IsNotNull(result); Assert.AreEqual(logFile.FileName, result.FileName); result = logFileRepo.GetByHash(0, fileHash); Assert.IsNull(result); } }
private void LogReader(IProgress <string> progress) { progress.Report("Start"); var parser = new CsLogsApi(); var logRepository = new BaseRepository(new MongoRepositoryFactory(new ConnectionStringFactory())); var fileRepository = new LogFileRepository(new MongoRepositoryFactory(new ConnectionStringFactory())); progress.Report($"Read logs from \"{Settings.ConsoleLogsPath}\""); var watcher = new Reader(Settings.ConsoleLogsPath, parser, logRepository, fileRepository, progress); watcher.Start(); }
public void GetByProject_Integration_ReturnsData() { string filePath = Path.Combine(AppContext.BaseDirectory, Path.GetRandomFileName() + ".dbtest"); using (SQLiteDbContext dbContext = new SQLiteDbContext(filePath)) { dbContext.Initialise(); ILogFileRepository logFileRepo = new LogFileRepository(dbContext); // create the projects ProjectModel projectA = DataHelper.CreateProjectModel(); DataHelper.InsertProjectModel(dbContext, projectA); ProjectModel projectZ = DataHelper.CreateProjectModel(); DataHelper.InsertProjectModel(dbContext, projectZ); // create the log file records for ProjectA, as well as some for a different project int numRecords = new Random().Next(5, 10); for (var i = 0; i < numRecords; i++) { LogFileModel logFile = DataHelper.CreateLogFileModel(); logFile.ProjectId = projectA.Id; logFile.FileName = "ProjectA_" + i.ToString(); DataHelper.InsertLogFileModel(dbContext, logFile); } // create the log file records for ProjectB that should be excluded by the query for (var i = 0; i < 5; i++) { LogFileModel logFile = DataHelper.CreateLogFileModel(); logFile.ProjectId = projectZ.Id; logFile.FileName = "ProjectZ_" + i.ToString(); DataHelper.InsertLogFileModel(dbContext, logFile); } IEnumerable <LogFileModel> result = logFileRepo.GetByProject(projectA.Id); Assert.IsNotNull(result); Assert.AreEqual(numRecords, result.Count()); Assert.AreEqual(numRecords, result.Select(x => x.FileName.StartsWith("ProjectA_")).Count()); } }
public void Execute_IntegrationTest_SQLite() { string dbPath = Path.Combine(AppContext.BaseDirectory, Path.GetRandomFileName() + ".dbtest"); using (SQLiteDbContext dbContext = new SQLiteDbContext(dbPath)) { dbContext.Initialise(); dbContext.BeginTransaction(); // create the project first so we have one ProjectModel project = DataHelper.CreateProjectModel(); IProjectValidator projectValidator = new ProjectValidator(); ILogFileRepository logFileRepo = new LogFileRepository(dbContext); int projectId = new Random().Next(1, 1000); string filePath = Path.Combine(AppContext.BaseDirectory, Path.GetRandomFileName() + ".log"); FileDetail fileDetail = new FileDetail(); fileDetail.Length = new Random().Next(1000, 10000); fileDetail.Hash = Guid.NewGuid().ToString(); fileDetail.Name = Guid.NewGuid().ToString(); _fileUtils.GetFileHash(filePath).Returns(fileDetail); DataHelper.InsertProjectModel(dbContext, project); // create the log file LogFileModel logFile = DataHelper.CreateLogFileModel(); logFile.ProjectId = project.Id; ILogFileValidator logFileValidator = new LogFileValidator(); ICreateLogFileCommand createLogFileCommand = new CreateLogFileCommand(dbContext, logFileValidator, logFileRepo, _jobRegistrationService, _fileUtils); LogFileModel savedLogFile = createLogFileCommand.Execute(project.Id, filePath); Assert.Greater(savedLogFile.Id, 0); int rowCount = dbContext.ExecuteScalar <int>("SELECT COUNT(*) FROM LogFiles"); Assert.Greater(rowCount, 0); string fileName = dbContext.ExecuteScalar <string>("SELECT FileName FROM LogFiles WHERE Id = @Id", savedLogFile); Assert.AreEqual(savedLogFile.FileName, fileName); Assert.AreEqual(LogFileStatus.Processing, savedLogFile.Status); } }
private static void Main() { Console.WriteLine("Start"); var parser = new CsLogsApi(); var logRepository = new BaseRepository(new MongoRepositoryFactory(new ConnectionStringFactory())); var fileRepository = new LogFileRepository(new MongoRepositoryFactory(new ConnectionStringFactory())); Console.WriteLine($"Read logs from \"{Settings.ConsoleLogsPath}\""); var watcher = new Reader(Settings.ConsoleLogsPath, parser, logRepository, fileRepository); watcher.Start(); while (Console.ReadKey().Key != ConsoleKey.Escape) { } watcher.Stop(); Console.WriteLine("Finish"); Console.ReadLine(); }