public void MyTestInitialize()
 {
     _semesterService = new SemesterService();
 }
        public void TestGetAllSemesters()
        {
            var semesterService = new SemesterService();
            IList<Semester> semesters = semesterService.GetAllSemesters();
            var count = semesters.Count;

            var semester = new Semester
            {
                Name = "Winter",
                StartDate = DateTime.Now.AddDays(10),
                EndDate = DateTime.Now.AddMonths(2).AddDays(2)
            };

            var c1 = new Course
            {
                Name = "C# 1",
                Description = "Programming in .NET Framework With C#",
                Credits = 8,
                Cost = 80,
                Currency = "EUR",
                LowerBound = 10,
                UpperBound = 100,
                Semesters = new[] { semester }
            };

            var c2 = new Course
            {
                Name = "C# 1",
                Description = "Programming in .NET Framework With C#",
                Credits = 8,
                Cost = 80,
                Currency = "EUR",
                LowerBound = 10,
                UpperBound = 100,
                Semesters = new[] { semester }
            };

            var c3 = new Course
            {
                Name = "C# 1",
                Description = "Programming in .NET Framework With C#",
                Credits = 8,
                Cost = 80,
                Currency = "EUR",
                LowerBound = 10,
                UpperBound = 100,
                Semesters = new[] { semester }
            };

            var c4 = new Course
            {
                Name = "C# 1",
                Description = "Programming in .NET Framework With C#",
                Credits = 8,
                Cost = 80,
                Currency = "EUR",
                LowerBound = 10,
                UpperBound = 100,
                Semesters = new[] { semester }
            };

            var c5 = new Course
            {
                Name = "C# 1",
                Description = "Programming in .NET Framework With C#",
                Credits = 8,
                Cost = 80,
                Currency = "EUR",
                LowerBound = 10,
                UpperBound = 100,
                Semesters = new[] { semester }
            };
            semester.Courses = new[] { c1, c2, c3, c4, c5 };
            semesterService.AddSemester(semester);

            var count2 = semesterService.GetAllSemesters().Count;
            var result = count2 == count + 1;
            Assert.AreEqual(true, result);
        }
        public void TestGetSemesterById()
        {
            var semesterService = new SemesterService();

            var semester = new Semester
            {
                Name = "Winter",
                StartDate = DateTime.Now.AddDays(10),
                EndDate = DateTime.Now.AddMonths(2).AddDays(2)
            };

            var c1 = new Course
            {
                Name = "C# 1",
                Description = "Programming in .NET Framework With C#",
                Credits = 8,
                Cost = 80,
                Currency = "EUR",
                LowerBound = 10,
                UpperBound = 100,
                Semesters = new[] { semester }
            };

            var c2 = new Course
            {
                Name = "C# 1",
                Description = "Programming in .NET Framework With C#",
                Credits = 8,
                Cost = 80,
                Currency = "EUR",
                LowerBound = 10,
                UpperBound = 100,
                Semesters = new[] { semester }
            };

            var c3 = new Course
            {
                Name = "C# 1",
                Description = "Programming in .NET Framework With C#",
                Credits = 8,
                Cost = 80,
                Currency = "EUR",
                LowerBound = 10,
                UpperBound = 100,
                Semesters = new[] { semester }
            };

            var c4 = new Course
            {
                Name = "C# 1",
                Description = "Programming in .NET Framework With C#",
                Credits = 8,
                Cost = 80,
                Currency = "EUR",
                LowerBound = 10,
                UpperBound = 100,
                Semesters = new[] { semester }
            };

            var c5 = new Course
            {
                Name = "C# 1",
                Description = "Programming in .NET Framework With C#",
                Credits = 8,
                Cost = 80,
                Currency = "EUR",
                LowerBound = 10,
                UpperBound = 100,
                Semesters = new[] { semester }
            };
            semester.Courses = new[] { c1, c2, c3, c4, c5 };
            semesterService.AddSemester(semester);

            var semester2 = semesterService.GetSemesterById(semester.SemesterId);

            Assert.AreEqual(semester.StartDate.ToString("yyyy-MM-ddTHH:mm:ss"), semester2.StartDate.ToString("yyyy-MM-ddTHH:mm:ss"));
            Assert.AreEqual(semester.EndDate.ToString("yyyy-MM-ddTHH:mm:ss"), semester2.EndDate.ToString("yyyy-MM-ddTHH:mm:ss"));
            Assert.AreEqual(semester.MinimumCreditTreshold, semester2.MinimumCreditTreshold);
        }
        public void TestCourseWithPrerequisite()
        {
            var semester1 = new Semester
            {
                Name = "Winter",
                StartDate = DateTime.Now.AddMonths(-10),
                EndDate = DateTime.Now.AddMonths(2).AddDays(2)
            };

            var semester2 = new Semester
            {
                Name = "Fall",
                StartDate = DateTime.Now.AddDays(10),
                EndDate = DateTime.Now.AddMonths(2).AddDays(2)
            };

            var semesterService = new SemesterService();

            var c1 = new Course
            {
                Name = "C# 1",
                Description = "Programming in .NET Framework With C#",
                Credits = 8,
                Cost = 80,
                Currency = "EUR",
                LowerBound = 10,
                UpperBound = 100,
                Semesters = new[] { semester1, semester2 }
            };

            var c2 = new Course
            {
                Name = "C# 1",
                Description = "Programming in .NET Framework With C#",
                Credits = 8,
                Cost = 80,
                Currency = "EUR",
                LowerBound = 10,
                UpperBound = 100,
                Semesters = new[] { semester1, semester2 }
            };

            var c3 = new Course
            {
                Name = "C# 1",
                Description = "Programming in .NET Framework With C#",
                Credits = 8,
                Cost = 80,
                Currency = "EUR",
                LowerBound = 10,
                UpperBound = 100,
                Semesters = new[] { semester1, semester2 }
            };

            var c4 = new Course
            {
                Name = "C# 1",
                Description = "Programming in .NET Framework With C#",
                Credits = 8,
                Cost = 80,
                Currency = "EUR",
                LowerBound = 10,
                UpperBound = 100,
                Semesters = new[] { semester1, semester2 }
            };

            var c5 = new Course
            {
                Name = "C# 1",
                Description = "Programming in .NET Framework With C#",
                Credits = 8,
                Cost = 80,
                Currency = "EUR",
                LowerBound = 10,
                UpperBound = 100,
                Semesters = new[] { semester1, semester2 }
            };
            semester1.Courses = new[] { c1, c2, c3, c4, c5 };
            semester2.Courses = new[] { c1, c2, c3, c4, c5 };
            semesterService.AddSemester(semester1);
            semesterService.AddSemester(semester2);
            var c11 = new Course
            {
                Name = "C# 1",
                Description = "Programming in .NET Framework With C#",
                Credits = 8,
                Cost = 80,
                Currency = "EUR",
                LowerBound = 10,
                UpperBound = 100,
                Semesters = new[] { semester1 , semester2 },
            };

            var c22 = new Course
            {
                Name = "C# 2",
                Description = "Programming in .NET Framework With C#",
                Credits = 8,
                Cost = 90,
                Currency = "EUR",
                LowerBound = 10,
                UpperBound = 100,
                Semesters = new[] { semester1, semester2 },
            };

            c2.CoursePreRequisites.Add(c11);

            var res = Validation.Validate(c22);
            Assert.AreEqual(res.IsValid, true, res.IsValid ? "" : "Validation Failed: " + res.Single().Message);

            if (!res.IsValid)
            {
                var singleOrDefault = res.SingleOrDefault();
                if (singleOrDefault != null) Trace.WriteLine(singleOrDefault.Message);
            }
        }