public async void GetPlannedInspectionsShouldReturnPlannedInspections(int plannedInspectionId) { PlannedInspection expected = _dbMock.Object.PlannedInspections.FirstOrDefault(p => p.Id == plannedInspectionId); Assert.Equal(expected, await _inspectionService.GetPlannedInspection(plannedInspectionId)); }
public async void GetPlannedInspectionShouldReturnPlannedInspection(int plannedInspectionId, int employeeId, int festivalId) { PlannedInspection expected = _dbMock.Object.PlannedInspections.FirstOrDefault(p => p.Id == plannedInspectionId); Assert.Equal(expected, await _inspectionService.GetPlannedInspection( _modelMocks.Festivals.First(f => f.Id == festivalId), _modelMocks.Employees.First(e => e.Id == employeeId), _modelMocks.PlannedInspections.First(p => p.Id == plannedInspectionId).StartTime)); }
public async void InvalidDataShouldThrowError() { PlannedInspection plannedInspection = _modelMocks.PlannedInspections.Find(e => e.Id == 1); string eventTitle = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. " + "Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque " + "penatibus et magnis dis parturient montes,"; await Assert.ThrowsAsync <InvalidDataException>(() => _inspectionService.CreatePlannedInspection( plannedInspection.Festival.Id, plannedInspection.Questionnaire.Id, new DateTime(2019, 12, 10, 12, 30, 0), new DateTime(2019, 12, 10, 19, 0, 0), eventTitle, plannedInspection.Employee.Id)); }
public async Task <PlannedInspection> CreatePlannedInspection( int festivalId, int questionnaireId, DateTime startTime, DateTime endTime, string eventTitle, int employeeId ) { var existing = _db.PlannedInspections .FirstOrDefault(x => x.Questionnaire.Id == questionnaireId && x.Festival.Id == festivalId && x.Employee.Id == employeeId && x.StartTime.Equals(startTime) && x.IsCancelled == null); if (existing != null) { throw new EntityExistsException(); } var plannedInspection = new PlannedInspection { Festival = _db.Festivals.FirstOrDefault(x => x.Id == festivalId), Questionnaire = _db.Questionnaires.FirstOrDefault(x => x.Id == questionnaireId), Employee = _db.Employees.FirstOrDefault(x => x.Id == employeeId), StartTime = startTime, EndTime = endTime, EventTitle = eventTitle }; if (!plannedInspection.Validate()) { throw new InvalidDataException(); } _db.PlannedInspections.Add(plannedInspection); await _db.SaveChangesAsync(); return(null); }
protected override void Seed(FestispecContext context) { // This method will be called after migrating to the latest version. // You can use the DbSet<T>.AddOrUpdate() helper extension method // to avoid creating duplicate seed data. // context.SaveChanges(); try { var address = new Address { Id = 1, StreetName = "Isolatorweg", HouseNumber = 36, ZipCode = "1014AS", City = "Amsterdam", Country = "Nederland", Latitude = 52.39399f, Longitude = 4.8507514f }; var address2 = new Address { Id = 2, Country = "Duitsland", StreetName = "Flughafen-Ring", HouseNumber = 16, City = "Weeze", ZipCode = "NW47652", Latitude = 51.5924149f, Longitude = 6.1545434f }; var address3 = new Address { Id = 3, City = "Utrecht", Country = "Nederland", HouseNumber = 59, StreetName = "Chopinstraat", ZipCode = "3533EL", Latitude = 52.0857048f, Longitude = 5.08541441f }; var address4 = new Address { City = "Amsterdam", Country = "Nederland", HouseNumber = 14, StreetName = "Lutmastraat", ZipCode = "1072JL", Latitude = 52.350400f, Longitude = 4.892710f }; context.Addresses.AddOrUpdate(address, address2, address3, address4); Employee employee = CreateEmployee(context, address3); var customer = new Customer { Id = 1, CustomerName = "Q-DANCE", KvkNr = 34212891, Address = address, ContactDetails = new ContactDetails { EmailAddress = "*****@*****.**", PhoneNumber = "+31204877300" } }; context.Customers.AddOrUpdate(customer); var now = DateTime.Now; var festival = new Festival { Id = 1, FestivalName = "Q-BASE", Customer = customer, Description = "Nachtfestival over de grens", Address = address2, OpeningHours = new OpeningHours { StartTime = new TimeSpan(now.Hour, now.Minute, now.Second), EndTime = new TimeSpan(8, 0, 0), StartDate = new DateTime(2020, 1, 1), EndDate = new DateTime(2020, 9, 6) } }; context.Festivals.AddOrUpdate(festival); customer.Festivals = new List <Festival> { festival }; context.Customers.AddOrUpdate(customer); var questionnaire = new Questionnaire { Id = 1, Name = "Tester", Festival = festival }; context.Questionnaires.AddOrUpdate(questionnaire); var employeeInspector = new Employee { Id = 2, Iban = "NL01RABO12789410", Name = new FullName { First = "Jan", Last = "Dirksen" }, Account = new Account { Id = 1, // Voorletter + Achternaam + geboortejaar Username = "******", Password = BCrypt.Net.BCrypt.HashPassword("TestWachtwoord"), Role = Role.Inspector }, Address = address4, ContactDetails = new ContactDetails { EmailAddress = "*****@*****.**", PhoneNumber = "+31987654321" }, Certificates = new List <Certificate> { new Certificate { Id = 2, CertificateTitle = "Inspection Certificate", CertificationDate = new DateTime(2019, 3, 4, 00, 00, 00), ExpirationDate = new DateTime(2021, 3, 4, 00, 00, 00) } } }; var plannedInspection = new PlannedInspection { Id = 1, Employee = employeeInspector, Festival = festival, EventTitle = "Inspection " + festival.FestivalName, StartTime = DateTime.Now.Date.Add(new TimeSpan(0, 10, 0, 0)), EndTime = DateTime.Now.Date.Add(new TimeSpan(0, 20, 0, 0)), Questionnaire = questionnaire, }; context.PlannedInspections.AddOrUpdate(plannedInspection); #region DrawQuestion var drawQuestion = new DrawQuestion { Id = 1, PicturePath = "/Uploads/grasso.png", Questionnaire = questionnaire, Contents = "Wat is de kortste looproute van de mainstage naar de nooduitgang?" }; var drawQuestionAnswer = new FileAnswer { Id = 1, Question = drawQuestion, UploadedFilePath = "/Uploads/inspection_adsfadfs.png", PlannedInspection = plannedInspection }; context.Answers.AddOrUpdate(drawQuestionAnswer); context.Questions.AddOrUpdate(drawQuestion); #endregion #region MultipleChoiceQuestion var multipleChoiceQuestion = new MultipleChoiceQuestion { Id = 2, Contents = "Zijn er evacuatieplannen zichtbaar opgesteld?", Options = "Ja~Nee", OptionCollection = new ObservableCollection <StringObject> { new StringObject("Option1") }, Questionnaire = questionnaire }; var multipleChoiceQuestionAnswer = new MultipleChoiceAnswer { Id = 2, MultipleChoiceAnswerKey = 0, PlannedInspection = plannedInspection, Question = multipleChoiceQuestion }; context.Answers.AddOrUpdate(multipleChoiceQuestionAnswer); context.Questions.AddOrUpdate(multipleChoiceQuestion); #endregion #region NumericQuestion var numericQuestion = new NumericQuestion { Id = 3, Contents = "Hoeveel EHBO-posten zijn er aanwezig?", Minimum = 0, Maximum = 99, Questionnaire = questionnaire }; var numericQuestionAnswer = new NumericAnswer { Id = 3, Question = numericQuestion, IntAnswer = 3, PlannedInspection = plannedInspection }; context.Answers.AddOrUpdate(numericQuestionAnswer); context.Questions.AddOrUpdate(numericQuestion); #endregion #region RatingQuestion var ratingQuestion = new RatingQuestion { Id = 4, Contents = "Op een schaal van 1 tot 5, is de beveiliging voldoende aanwezig op het terrein?", HighRatingDescription = "Er is veel beveiliging", LowRatingDescription = "Er is amper beveiliging", Questionnaire = questionnaire }; var ratingQuestionAnswer = new NumericAnswer { Id = 3, Question = numericQuestion, IntAnswer = 4, PlannedInspection = plannedInspection }; context.Answers.AddOrUpdate(ratingQuestionAnswer); context.Questions.AddOrUpdate(ratingQuestion); #endregion #region StringQuestion var stringQuestion = new StringQuestion { Id = 5, Contents = "Geef een korte samenvatting van het vluchtplan.", IsMultiline = true, Questionnaire = questionnaire }; var stringQuestionAnswer = new StringAnswer { Id = 5, Question = stringQuestion, AnswerContents = "In geval van een calamiteit is voor de bezoekers duidelijk te zien dat er vanaf de mainstage al vier vluchtroutes bestaan.", PlannedInspection = plannedInspection }; context.Answers.AddOrUpdate(stringQuestionAnswer); context.Questions.AddOrUpdate(stringQuestion); #endregion #region PictureQuestion var pictureQuestion = new UploadPictureQuestion { Id = 6, Contents = "Plaats een foto van de vluchtroutes op het calamiteitenplan.", Questionnaire = questionnaire }; var pictureQuestionAnswer = new FileAnswer { Id = 6, Question = pictureQuestion, UploadedFilePath = "/uploads/inspection_adsfadfs.png", PlannedInspection = plannedInspection }; context.Answers.AddOrUpdate(pictureQuestionAnswer); context.Questions.AddOrUpdate(pictureQuestion); #endregion #region ReferenceQuestion var referenceQuestion = new ReferenceQuestion { Id = 7, Question = pictureQuestion, Contents = pictureQuestion.Contents, Questionnaire = questionnaire }; var referenceQuestionAnswer = new FileAnswer { Id = 7, Question = referenceQuestion, UploadedFilePath = "/uploads/inspection_eruwioeiruwoio.png", PlannedInspection = plannedInspection }; context.Answers.AddOrUpdate(referenceQuestionAnswer); context.Questions.AddOrUpdate(referenceQuestion); #endregion context.Employees.AddOrUpdate(employeeInspector); context.SaveChanges(); } catch (DbEntityValidationException e) { foreach (DbEntityValidationResult eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (DbValidationError ve in eve.ValidationErrors) { Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } throw; } }