public async Task GetQuestionCategoryAsync_DoesntExist_ReturnNull() { var database = new TestDatabaseBuilder() .AddClassroom("Class1") .Build(); var questionCategoryService = new QuestionCategoryService(database.Context); var category = await questionCategoryService.GetQuestionCategoryAsync ( "Class1", id: 1 ); Assert.Null(category); }
public async Task GetQuestionCategoriesAsync_OnlyForClassroom() { var database = new TestDatabaseBuilder() .AddClassroom("Class1") .AddClassroom("Class2") .AddQuestionCategory("Class1", "Category1") .AddQuestionCategory("Class1", "Category2") .AddQuestionCategory("Class2", "Category1") .Build(); var questionCategoryService = new QuestionCategoryService(database.Context); var categories = await questionCategoryService.GetQuestionCategoriesAsync("Class1"); Assert.Equal(2, categories.Count); Assert.Equal("Class1", categories[0].Classroom.Name); Assert.Equal("Category1", categories[0].Name); Assert.Equal("Class1", categories[0].Classroom.Name); Assert.Equal("Category2", categories[1].Name); }
public async Task GetQuestionCategoryAsync_Exists_ReturnCategory() { var database = new TestDatabaseBuilder() .AddClassroom("Class1") .AddQuestionCategory("Class1", "Category1") .Build(); var questionCategoryId = database.Context.QuestionCategories.First().Id; database.Reload(); var questionCategoryService = new QuestionCategoryService(database.Context); var category = await questionCategoryService.GetQuestionCategoryAsync ( "Class1", questionCategoryId ); Assert.Equal("Class1", category.Classroom.Name); Assert.Equal("Category1", category.Name); }
public async Task CreateQuestionCategoryAsync_CategoryCreated() { var database = new TestDatabaseBuilder() .AddClassroom("Class1") .Build(); var questionCategoryService = new QuestionCategoryService(database.Context); await questionCategoryService.CreateQuestionCategoryAsync ( "Class1", new QuestionCategory() { Name = "Category1" } ); database.Reload(); var questionCategory = database.Context.QuestionCategories .Include(qc => qc.Classroom) .Single(); Assert.Equal("Class1", questionCategory.Classroom.Name); Assert.Equal("Category1", questionCategory.Name); }
public async Task DeleteQuestionCategoryAsync_CategoryDeleted() { var database = new TestDatabaseBuilder() .AddClassroom("Class1") .AddQuestionCategory("Class1", "Category1") .Build(); var questionCategoryId = database.Context.QuestionCategories.First().Id; database.Reload(); var questionCategoryService = new QuestionCategoryService(database.Context); await questionCategoryService.DeleteQuestionCategoryAsync ( "Class1", questionCategoryId ); database.Reload(); Assert.Equal(0, database.Context.QuestionCategories.Count()); }
public async Task UpdateQuestionCategoryAsync_CategoryUpdated() { var database = new TestDatabaseBuilder() .AddClassroom("Class1") .AddQuestionCategory("Class1", "Category1", privateCategory: true) .Build(); var questionCategory = database.Context.QuestionCategories .Include(qc => qc.Classroom) .First(); // Update the category database.Context.Entry(questionCategory).State = EntityState.Detached; questionCategory.IsPrivate = false; // Apply the update var questionCategoryService = new QuestionCategoryService(database.Context); await questionCategoryService.UpdateQuestionCategoryAsync ( "Class1", questionCategory ); database.Reload(); questionCategory = database.Context.QuestionCategories .Include(qc => qc.Classroom) .Single(); Assert.Equal("Class1", questionCategory.Classroom.Name); Assert.Equal("Category1", questionCategory.Name); Assert.Equal(false, questionCategory.IsPrivate); }