public static void Main() { //Create and initialize the database Database.SetInitializer(new MigrateDatabaseToLatestVersion <SchoolContext, School.Data.Migrations.Configuration>()); var context = new SchoolContext(); using (context) { var school = new TownSchool { Name = "School", Location = "Town" }; var firstStudent = new Student { FirstName = "Ivan", LastName = "Ivanov", Age = 9, Grade = 4, TownSchool = school }; var secondStudent = new Student { FirstName = "Peter", LastName = "Petrov", Age = 15, Grade = 9, TownSchool = school }; var firstMark = new Mark { Subject = "Math", Value = 5, Student = firstStudent }; var secondMark = new Mark { Subject = "History", Value = 4, Student = secondStudent }; var thirdMark = new Mark { Subject = "IT", Value = 6, Student = secondStudent }; context.Marks.Add(firstMark); context.Marks.Add(secondMark); context.Marks.Add(thirdMark); context.Students.Add(firstStudent); context.Students.Add(secondStudent); context.TownSchools.Add(school); context.SaveChanges(); } }
public void AddStudentTest() { var school = new TownSchool { Name = "School" }; var student = new Student { FirstName = "Sam", LastName = "Chen", TownSchool = school }; dbContext.Set<TownSchool>().Add(school); dbContext.Set<Student>().Add(student); dbContext.SaveChanges(); Assert.IsTrue(student.StudentId > 0); }
public static TownSchoolModel Convert(TownSchool school) { TownSchoolModel model = new TownSchoolModel { TownSchoolId = school.TownSchoolId, Name = school.Name, Location = school.Location, StudentsCount = school.Students.Count }; return model; }
public void GetAllStudentsTest() { var repository = new FakeStudentRepository(); var school = new TownSchool { Name = "School", Location = "Town" }; var student = new Student { FirstName = "Ivan", LastName = "Ivanov", Age = 9, Grade = 4, TownSchool = school }; repository.entities.Add(student); var server = new InMemoryHttpServer("http://localhost/"); var response = server.CreateGetRequest("api/students"); Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); Assert.IsNotNull(response.Content); }
public void GetStudentInvalidTest() { var repository = new FakeStudentRepository(); var school = new TownSchool { Name = "School", Location = "Town" }; var firstStudent = new Student { FirstName = "Ivan", LastName = "Ivanov", Age = 9, Grade = 4, TownSchool = school }; var secondStudent = new Student { FirstName = "Peter", LastName = "Petrov", Age = 15, Grade = 9, TownSchool = school }; repository.entities.Add(firstStudent); repository.entities.Add(secondStudent); var server = new InMemoryHttpServer("http://localhost/"); var response = server.CreateGetRequest("api/students/3"); Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode); }
public void AddStudentInDatabaseTest() { var school = new TownSchool { Name = "School" }; var student = new Student { FirstName = "Sam", LastName = "Chen", TownSchool = school }; dbContext.Set<TownSchool>().Add(school); dbContext.SaveChanges(); var createdStudent = this.studentsRepository.Add(student); var foundStudent = this.dbContext.Set<Student>().Find(createdStudent.StudentId); Assert.IsNotNull(foundStudent); Assert.AreEqual("Sam", foundStudent.FirstName); Assert.AreEqual("Chen", foundStudent.LastName); Assert.AreEqual(school.TownSchoolId, foundStudent.TownSchoolId); }
public static TownSchoolFullModel Convert(TownSchool school) { TownSchoolFullModel model = new TownSchoolFullModel { TownSchoolId = school.TownSchoolId, Name = school.Name, Location = school.Location, StudentsCount = school.Students.Count, Students = ( from student in school.Students select StudentModel.Convert(student)).ToList() }; return model; }
public void AddSeveralStudentTest() { var school = new TownSchool { Name = "School" }; var studentA = new Student { FirstName = "Sam", LastName = "Chen", TownSchool = school }; var studentB = new Student { FirstName = "Tom", LastName = "Tom", TownSchool = school }; var studentC = new Student { FirstName = "Ben", LastName = "Ben", TownSchool = school }; dbContext.Set<TownSchool>().Add(school); dbContext.Set<Student>().Add(studentA); dbContext.Set<Student>().Add(studentB); dbContext.Set<Student>().Add(studentC); dbContext.SaveChanges(); Assert.IsTrue(studentA.StudentId > 0); Assert.IsTrue(studentB.StudentId > 0); Assert.IsTrue(studentC.StudentId > 0); }
public void GetAllStudentsControllerTest() { var repository = new FakeStudentRepository(); var school = new TownSchool { Name = "School", Location = "Town" }; var student = new Student { FirstName = "Ivan", LastName = "Ivanov", Age = 9, Grade = 4, TownSchool = school }; repository.entities.Add(student); var controller = new StudentsController(repository); var studentsModels = controller.GetAll(); Assert.IsTrue(studentsModels.Count() == 1); Assert.AreEqual(student.FirstName, studentsModels.First().FirstName); Assert.AreEqual(student.LastName, studentsModels.First().LastName); Assert.AreEqual(student.Age, studentsModels.First().Age); Assert.AreEqual(student.Grade, studentsModels.First().Grade); }
public void GetAllSeveralStudentsControllerTest() { var repository = new FakeStudentRepository(); var school = new TownSchool { Name = "School", Location = "Town" }; var firstStudent = new Student { FirstName = "Ivan", LastName = "Ivanov", Age = 9, Grade = 4, TownSchool = school }; var secondStudent = new Student { FirstName = "Peter", LastName = "Petrov", Age = 15, Grade = 9, TownSchool = school }; var thirdStudent = new Student { FirstName = "Todor", LastName = "Todorov", Age = 7, Grade = 1, TownSchool = school }; repository.entities.Add(firstStudent); repository.entities.Add(secondStudent); repository.entities.Add(thirdStudent); var controller = new StudentsController(repository); var studentsModels = controller.GetAll(); Assert.IsTrue(studentsModels.Count() == 3); }
public void DeleteStudentsControllerTest() { var repository = new FakeStudentRepository(); var school = new TownSchool { Name = "School", Location = "Town" }; var firstStudent = new Student { FirstName = "Ivan", LastName = "Ivanov", Age = 9, Grade = 4, TownSchool = school }; var secondStudent = new Student { FirstName = "Peter", LastName = "Petrov", Age = 15, Grade = 9, TownSchool = school }; var thirdStudent = new Student { FirstName = "Todor", LastName = "Todorov", Age = 7, Grade = 1, TownSchool = school }; var controller = new StudentsController(repository); var firstStudentModel = controller.Post(firstStudent); var secondStudentModel = controller.Post(secondStudent); var thirdStudentModel = controller.Post(thirdStudent); controller.Delete(3); Assert.IsTrue(controller.GetAll().Count() == 2); Assert.IsTrue(controller.GetAll().Count(x => x.FirstName == thirdStudent.FirstName) == 0); }
public void GetStudentBySubjectMarkTest() { var repository = new FakeStudentRepository(); var school = new TownSchool { Name = "School", Location = "Town" }; var firstStudent = new Student { FirstName = "Ivan", LastName = "Ivanov", Age = 9, Grade = 4, TownSchool = school }; var secondStudent = new Student { FirstName = "Peter", LastName = "Petrov", Age = 15, Grade = 9, TownSchool = school }; firstStudent.Marks.Add(new Mark { Subject = "Math", Value = 5, Student = firstStudent }); secondStudent.Marks.Add(new Mark { Subject = "History", Value = 4, Student = secondStudent }); secondStudent.Marks.Add(new Mark { Subject = "IT", Value = 6, Student = secondStudent }); repository.entities.Add(firstStudent); repository.entities.Add(secondStudent); var server = new InMemoryHttpServer("http://localhost/"); var response = server.CreateGetRequest("api/students?subject=Math&value=5"); Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); Assert.IsNotNull(response.Content); }
public void GetByIdStudentsControllerTest() { var repository = new FakeStudentRepository(); var school = new TownSchool { Name = "School", Location = "Town" }; var firstStudent = new Student { FirstName = "Ivan", LastName = "Ivanov", Age = 9, Grade = 4, TownSchool = school }; var secondStudent = new Student { FirstName = "Peter", LastName = "Petrov", Age = 15, Grade = 9, TownSchool = school }; var thirdStudent = new Student { FirstName = "Todor", LastName = "Todorov", Age = 7, Grade = 1, TownSchool = school }; repository.entities.Add(firstStudent); repository.entities.Add(secondStudent); repository.entities.Add(thirdStudent); var controller = new StudentsController(repository); var studentModel = controller.Get(1); Assert.AreEqual(secondStudent.FirstName, studentModel.FirstName); Assert.AreEqual(secondStudent.LastName, studentModel.LastName); Assert.AreEqual(secondStudent.Age, studentModel.Age); Assert.AreEqual(secondStudent.Grade, studentModel.Grade); }
// POST api/artists //[HttpPost] public HttpResponseMessage Post(TownSchool model) { if (model.Name == null) { var errResponse = this.Request.CreateErrorResponse( HttpStatusCode.BadRequest, "TownSchool Name could not be null"); throw new HttpResponseException(errResponse); } var entity = this.townSchoolRepository.Add(model); var response = Request.CreateResponse(HttpStatusCode.Created, entity); response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = entity.TownSchoolId })); return response; }
// PUT api/artists/5 //[HttpPut] public HttpResponseMessage Put(int id, TownSchool model) { if (model.Name == null) { var errResponse = this.Request.CreateErrorResponse( HttpStatusCode.BadRequest, "TownSchool Name could not be null"); throw new HttpResponseException(errResponse); } var entity = this.townSchoolRepository.Get(id); if (entity == null) { var errResponse = this.Request.CreateErrorResponse( HttpStatusCode.BadRequest, string.Format("There is no element with id {0}", id)); throw new HttpResponseException(errResponse); } entity = this.townSchoolRepository.Update(id, model); var response = Request.CreateResponse(HttpStatusCode.OK, entity); response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = entity.TownSchoolId })); return response; }
public void PostStudentInvalidNameTest() { var repository = new FakeStudentRepository(); var school = new TownSchool { Name = "School", Location = "Town" }; var student = new Student { FirstName = null, LastName = "Ivanov", Age = 9, Grade = 4, TownSchool = school }; var server = new InMemoryHttpServer("http://localhost/"); var response = server.CreatePostRequest("api/students", student); Assert.AreEqual(HttpStatusCode.InternalServerError, response.StatusCode); }
public void PostStudentsControllerTest() { var repository = new FakeStudentRepository(); var school = new TownSchool { Name = "School", Location = "Town" }; var student = new Student { FirstName = "Ivan", LastName = "Ivanov", Age = 9, Grade = 4, TownSchool = school }; var controller = new StudentsController(repository); var studentModel = controller.Post(student).Content.ReadAsStringAsync().Result; Student studentDeserialized = JsonConvert.DeserializeObject<Student>(studentModel); Assert.IsTrue(controller.GetAll().Count() == 1); Assert.IsNotNull(studentDeserialized); Assert.AreEqual(student.FirstName, studentDeserialized.FirstName); Assert.AreEqual(student.LastName, studentDeserialized.LastName); Assert.AreEqual(student.Age, studentDeserialized.Age); Assert.AreEqual(student.Grade, studentDeserialized.Grade); }
public void DeleteStudentIdTest() { var school = new TownSchool { Name = "School" }; var student = new Student { FirstName = "Sam", LastName = "Chen", TownSchool = school }; dbContext.Set<TownSchool>().Add(school); dbContext.Set<Student>().Add(student); dbContext.SaveChanges(); var count = dbContext.Set<Student>().Count(); this.studentsRepository.Delete(student.StudentId); var foundStudent = this.dbContext.Set<Student>().Find(student.StudentId); Assert.IsNull(foundStudent); Assert.IsTrue(dbContext.Set<Student>().Count() == count - 1); }
public void GetStudentTest() { var school = new TownSchool { Name = "School" }; var student = new Student { FirstName = "Sam", LastName = "Chen", Age = 9, Grade = 4, TownSchool = school }; dbContext.Set<TownSchool>().Add(school); dbContext.Set<Student>().Add(student); dbContext.SaveChanges(); var studentId = student.StudentId; var gettedStudent = this.studentsRepository.Get(studentId); Assert.IsNotNull(gettedStudent); Assert.AreEqual(student.StudentId, gettedStudent.StudentId); Assert.AreEqual(9, gettedStudent.Age); Assert.AreEqual(4, gettedStudent.Grade); Assert.AreEqual("Sam", gettedStudent.FirstName); Assert.AreEqual("Chen", gettedStudent.LastName); Assert.AreEqual(student.TownSchoolId, gettedStudent.TownSchoolId); }
public void UpdeteStudentMarksTest() { var school = new TownSchool { Name = "School" }; var student = new Student { FirstName = "Sam", LastName = "Chen", Age = 9, Grade = 4, TownSchool = school }; var mark = new Mark { Subject = "Math", Value = 5, Student = student }; dbContext.Set<TownSchool>().Add(school); dbContext.Set<Student>().Add(student); dbContext.Set<Mark>().Add(mark); dbContext.SaveChanges(); var studentId = student.StudentId; var schoolId = student.TownSchoolId; student.Marks.First().Subject = "IT"; var updatedStudent = this.studentsRepository.Update(studentId, student); Assert.IsNotNull(updatedStudent); Assert.AreEqual(1, updatedStudent.Marks.Count); Assert.AreEqual("IT", updatedStudent.Marks.First().Subject); Assert.AreEqual(5, updatedStudent.Marks.First().Value); }
public void UpdateStudentTest() { var school = new TownSchool { Name = "School" }; var student = new Student { FirstName = "Sam", LastName = "Chen", TownSchool = school }; dbContext.Set<TownSchool>().Add(school); dbContext.Set<Student>().Add(student); dbContext.SaveChanges(); var studentId = student.StudentId; var schoolId = student.TownSchoolId; student.FirstName = "Tom"; var updatedStudent = this.studentsRepository.Update(studentId, student); Assert.IsNotNull(updatedStudent); Assert.AreEqual(studentId, updatedStudent.StudentId); Assert.AreEqual("Tom", updatedStudent.FirstName); Assert.AreEqual("Chen", updatedStudent.LastName); Assert.AreEqual(schoolId, updatedStudent.TownSchoolId); }
public void UpdateFullStudentTest() { var school = new TownSchool { Name = "School" }; var student = new Student { FirstName = "Sam", LastName = "Chen", Age = 9, Grade = 4, TownSchool = school }; dbContext.Set<TownSchool>().Add(school); dbContext.Set<Student>().Add(student); dbContext.SaveChanges(); student.Age = 15; var updatedStudent = this.studentsRepository.Update(student.StudentId, student); Assert.IsNotNull(updatedStudent); Assert.AreEqual(15, updatedStudent.Age); Assert.AreEqual(4, updatedStudent.Grade); }