Example #1
0
        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");
        }
Example #5
0
        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");
        }
Example #10
0
        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);
        }
Example #13
0
        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");
        }