public void Test_GetContextedCourseVM_with_ValidCourse() { // Arrange StubHttpConnection stub_connection = new StubHttpConnection(); List <CourseModel> test_courseList = new List <CourseModel>(); CourseModel dummy_courseToAttach = new CourseModel(); dummy_courseToAttach.Id = "1000"; dummy_courseToAttach.Department = "STAT"; dummy_courseToAttach.Name = "Should be in final list"; dummy_courseToAttach.Difficulty = 5.55; dummy_courseToAttach.DifficultyCount = 9; dummy_courseToAttach.SectionRatings = new Dictionary <string, Dictionary <string, double> > { { "test_person1", new Dictionary <string, double> { { "rating", 6.9 }, { "count", 10 } } } }; DepartmentViewModel deptVmToTest = new DepartmentViewModel("TEST", stub_connection); // Act CourseDetailsViewModel courseVmToTest = deptVmToTest.GetContextedCourseVM(dummy_courseToAttach); // Assert Assert.IsTrue(courseVmToTest.DepartmentName.Equals("Department of " + dummy_courseToAttach.Department), "Returned contexted course had different department"); Assert.IsTrue(courseVmToTest.DifficultyLevel.Equals(dummy_courseToAttach.Difficulty), "Returned contexted course had difficulty level"); Assert.IsTrue(courseVmToTest.DifficultyCount.Equals("Based on " + dummy_courseToAttach.DifficultyCount + " reviews"), "Returned contexted course had difficulty count"); Assert.IsTrue(courseVmToTest.NameAndId.Equals(dummy_courseToAttach.Id + " - " + dummy_courseToAttach.Name), "Returned contexted course had different course name and id"); }
public void Test_GenerateCourseList_with_InvalidCourse() { // Arrange StubHttpConnection stub_connection = new StubHttpConnection(); List <CourseModel> test_courseList = new List <CourseModel>(); CourseModel dummy_courseToAttach2 = new CourseModel(); dummy_courseToAttach2.Id = null; dummy_courseToAttach2.Department = null; dummy_courseToAttach2.Name = "Should not be final list as it invalid"; dummy_courseToAttach2.Difficulty = 7.9; dummy_courseToAttach2.DifficultyCount = 7; dummy_courseToAttach2.SectionRatings = new Dictionary <string, Dictionary <string, double> > { { "test_person2", new Dictionary <string, double> { { "rating", 3.4 }, { "count", 15 } } } }; test_courseList.Add(dummy_courseToAttach2); stub_connection.SetDummyResponse(JsonConvert.SerializeObject(test_courseList)); DepartmentViewModel vmToTest = new DepartmentViewModel("TEST", stub_connection); // Test with valid JSON object but invalid data vmToTest.GenerateCourseList(); // Assert Assert.IsFalse(vmToTest.CourseList.Any(c => c.Name.Equals(dummy_courseToAttach2.Name)), "Invalid course was added to list"); }
public void Test_HandleReviewSubmission_with_InvalidData() { // Arrange StubHttpConnection stub_connection = new StubHttpConnection(); stub_connection.SetDummyResponse("[{\"id\":\"TEST 1000\",\"department\":\"Test Science\",\"difficulty\":8,\"difficultyCount\":1,\"name\":\"Intro to Testing\",\"sectionRatings\":{\"Ariana Grande\":{\"count\":1,\"rating\":3}}}]"); CourseReviewViewModel vmToTest = new CourseReviewViewModel(stub_connection) { CourseDeptCode = "TEST", CourseNum = "", Department = null, CourseName = null, DifficultyLevel = -5, Instructor = "Cool Person", InstructorRating = -5 }; // Act vmToTest.HandleReviewSubmission(); // Assert Assert.IsFalse(stub_connection.GetResource("").Contains("Test.PUT"), "Review was submitted as existing course with invalid course data"); Assert.IsFalse(stub_connection.GetResource("").Contains("Test.POST"), "Review was submitted as new course with invalid course data"); }
public void Test_GetContextedDeptVM_with_ValidDept() { // Arrange StubHttpConnection stub_connection = new StubHttpConnection(); List <CourseModel> test_courseList = new List <CourseModel>(); CourseModel dummy_courseToAttach1 = new CourseModel(); dummy_courseToAttach1.Id = "1000"; dummy_courseToAttach1.Department = "STAT"; dummy_courseToAttach1.Name = "Should be in final list"; dummy_courseToAttach1.Difficulty = 5.55; dummy_courseToAttach1.DifficultyCount = 9; dummy_courseToAttach1.SectionRatings = new Dictionary <string, Dictionary <string, double> > { { "test_person1", new Dictionary <string, double> { { "rating", 6.9 }, { "count", 10 } } } }; CourseModel dummy_courseToAttach2 = new CourseModel(); dummy_courseToAttach2.Id = "2000"; dummy_courseToAttach2.Department = "STAT"; dummy_courseToAttach2.Name = "Should be final list"; dummy_courseToAttach2.Difficulty = 7.9; dummy_courseToAttach2.DifficultyCount = 7; dummy_courseToAttach2.SectionRatings = new Dictionary <string, Dictionary <string, double> > { { "test_person2", new Dictionary <string, double> { { "rating", 3.4 }, { "count", 15 } } } }; test_courseList.Add(dummy_courseToAttach1); test_courseList.Add(dummy_courseToAttach2); stub_connection.SetDummyResponse(JsonConvert.SerializeObject(test_courseList)); DepartmentListViewModel deptListVmToTest = new DepartmentListViewModel(stub_connection); // Act DepartmentViewModel deptVmToTest = deptListVmToTest.GetContextedDeptVM(new DepartmentModel() { Name = "STAT" });; // Assert Assert.IsTrue(deptVmToTest.DepartmentName.Equals("STAT"), "returned department not the same as requested"); Assert.IsFalse(deptVmToTest == null, "department was null even with valid data"); Assert.IsFalse(deptVmToTest.CourseList == null, "course list was null for valid data"); Assert.IsFalse(deptVmToTest.CourseList.Count == 0, "courses not generated for valid department"); }
public void Test_GetContextedDeptVM_with_NullArgs() { // Arrange StubHttpConnection stub_connection = new StubHttpConnection(); DepartmentViewModel deptVmToTest = new DepartmentViewModel("FAKE", stub_connection); // Act CourseDetailsViewModel courseVmToTest = deptVmToTest.GetContextedCourseVM(null); // Assert Assert.IsTrue(courseVmToTest == null, "contexted course was not null even with null data"); }
public void Test_GenerateDepartmentList_with_NullServerResponse() { // Arrange StubHttpConnection stub_connection = new StubHttpConnection(); stub_connection.SetDummyResponse(null); DepartmentListViewModel vmToTest = new DepartmentListViewModel(stub_connection); // Act vmToTest.GenerateDepartmentList(); // Assert Assert.IsTrue(vmToTest.DepartmentList.Count == 0, "Department was added with null server response"); }
public void Test_GetContextedDeptVM_with_NullArgs() { // Arrange StubHttpConnection stub_connection = new StubHttpConnection(); DepartmentListViewModel deptListVmToTest = new DepartmentListViewModel(stub_connection); // Act DepartmentViewModel deptVmToTest = deptListVmToTest.GetContextedDeptVM(null); // Assert Assert.IsTrue(deptVmToTest == null, "contexted department was not null even with null data"); }
public void Test_GenerateCourseList_with_InvalidServerResponse() { // Arrange StubHttpConnection stub_connection = new StubHttpConnection(); stub_connection.SetDummyResponse("[{\"NOId\":\"1000\",\"NOdepartment\":\"COMP\",\"NOdifficulty\":5.55,\"NOdifficultyCount\":1,\"NOname\":\"Should be in final list as it is valid\",\"NOsectionRatings\":{\"test_person1\":{\"NOrating\":6.9,\"NOcount\":10.0}}}]"); DepartmentViewModel vmToTest = new DepartmentViewModel("MATH", stub_connection); // Test with invalid JSON responses from server vmToTest.GenerateCourseList(); // Assert Assert.IsTrue(vmToTest.CourseList.Count == 0, "Invalid course added with invalid server response"); }
public void Test_GenerateCourseList_with_NullServerResponse() { // Arrange StubHttpConnection stub_connection = new StubHttpConnection(); stub_connection.SetDummyResponse(null); DepartmentViewModel vmToTest = new DepartmentViewModel("HNSC", stub_connection); // Test with invalid JSON responses from server vmToTest.GenerateCourseList(); // Assert Assert.IsTrue(vmToTest.CourseList.Count == 0, "Invalid course added with null server response"); }
public void Test_GenerateRecommendationsList_with_NullServerResponse() { // Arrange StubHttpConnection stub_connection = new StubHttpConnection(); stub_connection.SetDummyResponse(null); CourseRecommendationsViewModel vmToTest = new CourseRecommendationsViewModel(stub_connection); // Test with null JSON responses from server vmToTest.GenerateRecommendationsList(); // Assert Assert.IsTrue(vmToTest.RecommendationsList.Count == 0, "Invalid course added with null server response"); }
public void Test_GenerateDepartmentList_with_ValidServerResponse() { // Arrange StubHttpConnection stub_connection = new StubHttpConnection(); stub_connection.SetDummyResponse("[\"TestDept1\",\"TestDept2\",\"TestDept3\"]"); DepartmentListViewModel vmToTest = new DepartmentListViewModel(stub_connection); // Act vmToTest.GenerateDepartmentList(); // Assert Assert.IsTrue(vmToTest.DepartmentList.Any(d => d.Name.Equals("TestDept1")), "Expected department not found"); Assert.IsTrue(vmToTest.DepartmentList.Any(d => d.Name.Equals("TestDept2")), "Expected department not found"); Assert.IsTrue(vmToTest.DepartmentList.Any(d => d.Name.Equals("TestDept3")), "Expected department not found"); Assert.IsTrue(vmToTest.DepartmentList.Count == 3, "Not all departments were added"); }
public void Test_GenerateCourseList_with_ValidCourse() { // Arrange StubHttpConnection stub_connection = new StubHttpConnection(); List <CourseModel> test_courseList = new List <CourseModel>(); CourseModel dummy_courseToAttach1 = new CourseModel(); dummy_courseToAttach1.Id = "1000"; dummy_courseToAttach1.Department = "STAT"; dummy_courseToAttach1.Name = "Should be in final list as it is valid"; dummy_courseToAttach1.Difficulty = 5.55; dummy_courseToAttach1.DifficultyCount = 9; dummy_courseToAttach1.SectionRatings = new Dictionary <string, Dictionary <string, double> > { { "test_person1", new Dictionary <string, double> { { "rating", 6.9 }, { "count", 10 } } } }; test_courseList.Add(dummy_courseToAttach1); stub_connection.SetDummyResponse(JsonConvert.SerializeObject(test_courseList)); DepartmentViewModel vmToTest = new DepartmentViewModel("STAT", stub_connection); // Test with valid JSON object but invalid data vmToTest.GenerateCourseList(); // Assert Assert.IsTrue(vmToTest.CourseList.Any(c => c.Name.Equals(dummy_courseToAttach1.Name) && c.Id.Equals(dummy_courseToAttach1.Id) && c.Department.Equals(dummy_courseToAttach1.Department) && c.Difficulty == dummy_courseToAttach1.Difficulty && c.DifficultyCount == dummy_courseToAttach1.DifficultyCount && c.SectionRatings["test_person1"]["rating"] == 6.9), "Expected course was not found"); Assert.IsTrue(vmToTest.CourseList.Count == 1); }
public void Test_GenerateRecommendationsList_with_ValidCourse() { // Arrange StubHttpConnection stub_connection = new StubHttpConnection(); List <CourseModel> test_recommendations = new List <CourseModel>(); CourseModel dummy_courseToAttach1 = new CourseModel(); dummy_courseToAttach1.Id = "1010"; dummy_courseToAttach1.Department = "COMP"; dummy_courseToAttach1.Name = "Should be in final list as it is valid"; dummy_courseToAttach1.Difficulty = 7.62; dummy_courseToAttach1.DifficultyCount = 1; dummy_courseToAttach1.SectionRatings = new Dictionary <string, Dictionary <string, double> > { { "test_person1", new Dictionary <string, double> { { "rating", 5.4 }, { "count", 10 } } } }; test_recommendations.Add(dummy_courseToAttach1); stub_connection.SetDummyResponse(JsonConvert.SerializeObject(test_recommendations)); CourseRecommendationsViewModel vmToTest = new CourseRecommendationsViewModel(stub_connection); // Test with valid server response and data vmToTest.GenerateRecommendationsList(); // Assert Assert.IsTrue(vmToTest.RecommendationsList.Any(c => c.Name.Equals(dummy_courseToAttach1.Name) && c.Id.Equals(dummy_courseToAttach1.Id) && c.Department.Equals(dummy_courseToAttach1.Department) && c.Difficulty == dummy_courseToAttach1.Difficulty && c.DifficultyCount == dummy_courseToAttach1.DifficultyCount && c.SectionRatings["test_person1"]["rating"] == 5.4), "Expected course was not found"); Assert.IsTrue(vmToTest.RecommendationsList.Count == 1); }
public void Test_HandleReviewSubmission_with_NullServerResponse() { StubHttpConnection stub_connection = new StubHttpConnection(); stub_connection.SetDummyResponse(null); CourseReviewViewModel vmToTest = new CourseReviewViewModel(stub_connection) { CourseDeptCode = "TEST", CourseNum = "1000", Department = "Test Science", CourseName = "Intro to Testing", DifficultyLevel = 6, Instructor = "Cool Person", InstructorRating = 4 }; // Act vmToTest.HandleReviewSubmission(); // Assert Assert.IsTrue(stub_connection.GetResource("") == null, "Review was submitted without a valid response from server"); }
public void Test_GenerateCourseList_with_MultipleCourses() { // Arrange StubHttpConnection stub_connection = new StubHttpConnection(); List <CourseModel> test_courseList = new List <CourseModel>(); CourseModel dummy_courseToAttach1 = new CourseModel(); dummy_courseToAttach1.Id = "1000"; dummy_courseToAttach1.Department = "STAT"; dummy_courseToAttach1.Name = "Should be in final list"; dummy_courseToAttach1.Difficulty = 5.55; dummy_courseToAttach1.DifficultyCount = 9; dummy_courseToAttach1.SectionRatings = new Dictionary <string, Dictionary <string, double> > { { "test_person1", new Dictionary <string, double> { { "rating", 6.9 }, { "count", 10 } } } }; CourseModel dummy_courseToAttach2 = new CourseModel(); dummy_courseToAttach2.Id = "2000"; dummy_courseToAttach2.Department = "STAT"; dummy_courseToAttach2.Name = "Should be final list"; dummy_courseToAttach2.Difficulty = 7.9; dummy_courseToAttach2.DifficultyCount = 7; dummy_courseToAttach2.SectionRatings = new Dictionary <string, Dictionary <string, double> > { { "test_person2", new Dictionary <string, double> { { "rating", 3.4 }, { "count", 15 } } } }; test_courseList.Add(dummy_courseToAttach1); test_courseList.Add(dummy_courseToAttach2); stub_connection.SetDummyResponse(JsonConvert.SerializeObject(test_courseList)); DepartmentViewModel vmToTest = new DepartmentViewModel("STAT", stub_connection); // Test with multiple courses vmToTest.GenerateCourseList(); // Assert Assert.IsTrue(vmToTest.CourseList.Any(c => c.Name.Equals(dummy_courseToAttach1.Name) && c.Id.Equals(dummy_courseToAttach1.Id) && c.Department.Equals(dummy_courseToAttach1.Department) && c.Difficulty == dummy_courseToAttach1.Difficulty && c.DifficultyCount == dummy_courseToAttach1.DifficultyCount && c.SectionRatings["test_person1"]["rating"] == 6.9), "Expected course was not found multiple courses sent"); Assert.IsTrue(vmToTest.CourseList.Any(c => c.Name.Equals(dummy_courseToAttach2.Name) && c.Id.Equals(dummy_courseToAttach2.Id) && c.Department.Equals(dummy_courseToAttach2.Department) && c.Difficulty == dummy_courseToAttach2.Difficulty && c.DifficultyCount == dummy_courseToAttach2.DifficultyCount && c.SectionRatings["test_person2"]["rating"] == 3.4), "Expected course was not found when multiple courses sent"); Assert.IsTrue(vmToTest.CourseList.Count == 2, "not all courses were added"); }