Beispiel #1
0
 public UnitOfWork(FileSystemDbContext context)
 {
     FileRepository    = new BaseRepository <File>(context);
     FoldersRepository = new BaseRepository <Folder>(context);
     AccountRepository = new BaseRepository <ApplicationUser>(context);
     _context          = context;
 }
        public async Task GetCorrectlyOrderedCollection_ForAllEntityFieldsAscendingExceptFileName()
        {
            var(connection, options) = await CreateUniqueMockDbConnectionForThisTest(_listOfFilesAllFieldsDescending);

            try
            {
                using (var context = new FileSystemDbContext(options))
                {
                    var queryResult = context.Files.AsNoTracking();

                    queryResult = queryResult.ApplySort(
                        new List <string>()
                    {
                        nameof(FileTestClass.FileName) + " desc",
                        nameof(FileTestClass.FileType),
                        nameof(FileTestClass.FileSizeInKb),
                        nameof(FileTestClass.FileCreatedOnDate),
                        nameof(FileTestClass.Id)
                    });

                    var orderFileTestClassesCollection = queryResult.ToList();

                    Assert.That(orderFileTestClassesCollection,
                                Is.Ordered.By(nameof(FileTestClass.FileName)).Descending
                                .Then.By(nameof(FileTestClass.FileType)).Ascending
                                .Then.By(nameof(FileTestClass.FileSizeInKb)).Ascending
                                .Then.By(nameof(FileTestClass.FileCreatedOnDate)).Ascending
                                .Then.By(nameof(FileTestClass.Id)).Ascending);
                }
            }
            finally
            {
                connection.Close();
            }
        }
        public async Task <(SqliteConnection, DbContextOptions <FileSystemDbContext>)> CreateUniqueMockDbConnectionForThisTest(List <FileTestClass> liftOfFiles)
        {
            SqliteConnection connection = null;
            DbContextOptions <FileSystemDbContext> options = null;

            await Task.Run(() =>
            {
                connection = new SqliteConnection("DataSource=:memory:");
                connection.Open();

                options = new DbContextOptionsBuilder <FileSystemDbContext>()
                          .UseSqlite(connection)
                          .Options;

                // CreateAsync the schema in the database
                using (var context = new FileSystemDbContext(options))
                {
                    context.Database.EnsureCreated();
                    context.AddRange(liftOfFiles);
                    context.SaveChanges();
                }
            });

            return(connection, options);
        }
Beispiel #4
0
 public UnitOfWork(
     IFileRepository fileRepository,
     IFolderRepository folderRepository,
     FileSystemDbContext dbContext
     )
 {
     this.fileRepository   = fileRepository;
     this.folderRepository = folderRepository;
     this.db = dbContext;
 }
        public async Task GetCorrectlyOrderedCollection_ForAllEntityFieldsAscending()
        {
            var(connection, options) = await CreateUniqueMockDbConnectionForThisTest(_listOfFilesAllFieldsDescending);

            try
            {
                using (var context = new FileSystemDbContext(options))
                {
                    var queryResult = context.Files.AsNoTracking();

                    queryResult = queryResult.ApplySort(
                        new List <string>()
                    {
                        nameof(FileTestClass.FileName),
                        nameof(FileTestClass.FileType),
                        nameof(FileTestClass.FileSizeInKb),
                        nameof(FileTestClass.FileCreatedOnDate),
                        nameof(FileTestClass.Id)
                    });

                    var orderFileTestClassesCollection = queryResult.ToList();

                    var stringBUilder = new StringBuilder();

                    foreach (var entity in orderFileTestClassesCollection)
                    {
                        stringBUilder.Append(entity.FileName);
                        stringBUilder.Append(", ");
                        stringBUilder.Append(entity.FileType);
                        stringBUilder.Append(", ");
                        stringBUilder.Append(entity.FileSizeInKb);
                        stringBUilder.Append(", ");
                        stringBUilder.Append(entity.FileCreatedOnDate);
                        stringBUilder.Append(", ");
                        stringBUilder.Append(entity.Id);
                        stringBUilder.Append(Environment.NewLine);
                    }

                    var concString = stringBUilder.ToString();

                    Console.WriteLine(concString);

                    Assert.That(orderFileTestClassesCollection,
                                Is.Ordered.By(nameof(FileTestClass.FileName)).Ascending
                                .Then.By(nameof(FileTestClass.FileType)).Ascending
                                .Then.By(nameof(FileTestClass.FileSizeInKb)).Ascending
                                .Then.By(nameof(FileTestClass.FileCreatedOnDate)).Ascending
                                .Then.By(nameof(FileTestClass.Id)).Ascending);
                }
            }
            finally
            {
                connection.Close();
            }
        }
        public async Task ReturnCorrectCollection_WhenEntityContainsDoubleKeyAndKeyFieldsAreNeverIgnored()
        {
            var(connection, options) = await CreateUniqueMockDbConnectionForThisTest(
                new List <FileTestClass>()
            {
                new FileTestClass()
                {
                    FileName          = "TestFileName",
                    FileType          = ".docx",
                    FileCreatedOnDate = new DateTime(1989, 1, 11, 14, 00, 00),
                    FileSizeInKb      = 1000,
                }
            });

            try
            {
                using (var context = new FileSystemDbContext(options))
                {
                    await Task.Run(() =>
                    {
                        var query = context.Files.AsNoTracking();

                        var shapedResult = query.ShapeLinqToEntityQuery <FileTestClass, int, FileSystemDbContext>(
                            "FileName, FileType", true, context);


                        var expectedResult = JsonConvert.SerializeObject(new List <FileTestClass>()
                        {
                            new FileTestClass()
                            {
                                Id       = 1,
                                FileName = "TestFileName",
                                FileType = ".docx"
                            }
                        });

                        var actualResult = JsonConvert.SerializeObject(shapedResult);

                        Assert.AreEqual(expectedResult, actualResult);
                    });
                }
            }
            finally
            {
                connection.Close();
            }
        }
        public MainWindow()
        {
            _settings = new Settings();

            InitializeComponent();
            this.WindowStyle       = WindowStyle.None;
            this.WindowState       = WindowState.Maximized;
            this.KeyDown          += MainWindow_KeyDown;
            this.MouseDoubleClick += MainWindow_MouseDoubleClick;

            var path    = System.IO.Path.Combine(Environment.CurrentDirectory, "题库");
            var context = new FileSystemDbContext(path);

            _questionBooks = context.QuestionBooks;

            this.Content = InitCompetitionPage(_questionBooks);
        }
        public async Task AssertMockDataAllFieldsDescending()
        {
            var(connection, options) = await CreateUniqueMockDbConnectionForThisTest(_listOfFilesAllFieldsDescending);

            try
            {
                using (var context = new FileSystemDbContext(options))
                {
                    var queryResult = context.Files.ToList();

                    Assert.GreaterOrEqual(queryResult.Count, 5);
                }
            }
            finally
            {
                connection.Close();
            }
        }
Beispiel #9
0
        public async Task CanMoveFolder()
        {
            //Arrange
            var options = new DbContextOptionsBuilder <FileSystemDbContext>()
                          .UseInMemoryDatabase(databaseName: nameof(CanMoveFolder))
                          .Options;

            var folderToMoveId    = Guid.NewGuid();
            var newParentFolderId = Guid.NewGuid();
            var dbContext         = new FileSystemDbContext(options);

            await dbContext.Folders.AddRangeAsync(new FolderEntity
            {
                Id           = folderToMoveId,
                Name         = "New Folder",
                Index        = "1",
                ParentFolder = null
            },
                                                  new FolderEntity
            {
                Id           = newParentFolderId,
                Name         = "New Folder(2)",
                Index        = "2",
                ParentFolder = null
            }
                                                  );

            await dbContext.SaveChangesAsync();


            var repository = new FileSystemRepository(dbContext);
            var sut        = new FileSystemService(repository);

            //Action
            await sut.MoveFolderAsync(folderToMoveId, newParentFolderId);

            //Assert
            var movedFolder = await dbContext.Folders.SingleAsync(x => x.Id == folderToMoveId);

            movedFolder.Index.Should().Be("11");
            movedFolder.ParentFolder.Id.Should().Be(newParentFolderId);
        }
 public FileSystemRepository(FileSystemDbContext dbContext)
 {
     _dbContext = dbContext;
 }
Beispiel #11
0
 public FileRepository(FileSystemDbContext context, IMapper mapper)
 {
     _context = context;
     _mapper  = mapper;
 }
Beispiel #12
0
 public BaseRepository(FileSystemDbContext context)
 {
     _context = context;
     table    = context.Set <T>();
 }