public async Task Answer_Delete_DoesSetWorkflowStateToRemoved() { //Arrange Random rnd = new Random(); bool randomBool = rnd.Next(0, 2) > 0; sites site = new sites { Name = Guid.NewGuid().ToString(), MicrotingUid = rnd.Next(1, 255) }; await site.Create(dbContext).ConfigureAwait(false); sites siteForUnit = new sites { Name = Guid.NewGuid().ToString(), MicrotingUid = rnd.Next(1, 255) }; await siteForUnit.Create(dbContext).ConfigureAwait(false); units unit = new units { CustomerNo = rnd.Next(1, 255), MicrotingUid = rnd.Next(1, 255), OtpCode = rnd.Next(1, 255), SiteId = siteForUnit.Id }; await unit.Create(dbContext).ConfigureAwait(false); languages language = new languages { Description = Guid.NewGuid().ToString(), Name = Guid.NewGuid().ToString() }; await language.Create(dbContext).ConfigureAwait(false); question_sets questionSet = new question_sets { Name = Guid.NewGuid().ToString(), Share = randomBool, HasChild = randomBool, PosiblyDeployed = randomBool }; await questionSet.Create(dbContext).ConfigureAwait(false); survey_configurations surveyConfiguration = new survey_configurations { Name = Guid.NewGuid().ToString(), Start = DateTime.Now, Stop = DateTime.Now, TimeOut = rnd.Next(1, 255), TimeToLive = rnd.Next(1, 255), QuestionSetId = questionSet.Id }; await surveyConfiguration.Create(dbContext).ConfigureAwait(false); answers answer = new answers { AnswerDuration = rnd.Next(1, 255), FinishedAt = DateTime.Now, LanguageId = language.Id, SiteId = site.Id, TimeZone = Guid.NewGuid().ToString(), UnitId = unit.Id, UtcAdjusted = randomBool, QuestionSetId = questionSet.Id, SurveyConfigurationId = surveyConfiguration.Id }; await answer.Create(dbContext).ConfigureAwait(false); //Act DateTime?oldUpdatedAt = answer.UpdatedAt; await answer.Delete(dbContext); List <answers> answers = dbContext.answers.AsNoTracking().ToList(); List <answer_versions> answerVersions = dbContext.answer_versions.AsNoTracking().ToList(); //Assert Assert.NotNull(answers); Assert.NotNull(answerVersions); Assert.AreEqual(1, answers.Count()); Assert.AreEqual(2, answerVersions.Count()); Assert.AreEqual(answer.CreatedAt.ToString(), answers[0].CreatedAt.ToString()); Assert.AreEqual(answer.Version, answers[0].Version); // Assert.AreEqual(answer.UpdatedAt.ToString(), answers[0].UpdatedAt.ToString()); Assert.AreEqual(answers[0].WorkflowState, Constants.WorkflowStates.Removed); Assert.AreEqual(answer.Id, answers[0].Id); Assert.AreEqual(answer.AnswerDuration, answers[0].AnswerDuration); Assert.AreEqual(answer.FinishedAt.ToString(), answers[0].FinishedAt.ToString()); Assert.AreEqual(answer.LanguageId, language.Id); Assert.AreEqual(answer.SiteId, site.Id); Assert.AreEqual(answer.TimeZone, answers[0].TimeZone); Assert.AreEqual(answer.UnitId, unit.Id); Assert.AreEqual(answer.UtcAdjusted, answers[0].UtcAdjusted); Assert.AreEqual(answer.QuestionSetId, questionSet.Id); Assert.AreEqual(answer.SurveyConfigurationId, surveyConfiguration.Id); //Version 1 Old Version Assert.AreEqual(answer.CreatedAt.ToString(), answerVersions[0].CreatedAt.ToString()); Assert.AreEqual(1, answerVersions[0].Version); // Assert.AreEqual(oldUpdatedAt.ToString(), answerVersions[0].UpdatedAt.ToString()); Assert.AreEqual(answerVersions[0].WorkflowState, Constants.WorkflowStates.Created); Assert.AreEqual(answer.Id, answerVersions[0].AnswerId); Assert.AreEqual(answer.AnswerDuration, answerVersions[0].AnswerDuration); Assert.AreEqual(answer.FinishedAt.ToString(), answerVersions[0].FinishedAt.ToString()); Assert.AreEqual(language.Id, answerVersions[0].LanguageId); Assert.AreEqual(site.Id, answerVersions[0].SiteId); Assert.AreEqual(answer.TimeZone, answerVersions[0].TimeZone); Assert.AreEqual(unit.Id, answerVersions[0].UnitId); Assert.AreEqual(answer.UtcAdjusted, answerVersions[0].UtcAdjusted); Assert.AreEqual(questionSet.Id, answerVersions[0].QuestionSetId); Assert.AreEqual(surveyConfiguration.Id, answerVersions[0].SurveyConfigurationId); //Version 2 Deleted Version Assert.AreEqual(answer.CreatedAt.ToString(), answerVersions[1].CreatedAt.ToString()); Assert.AreEqual(2, answerVersions[1].Version); // Assert.AreEqual(answer.UpdatedAt.ToString(), answerVersions[1].UpdatedAt.ToString()); Assert.AreEqual(answer.Id, answerVersions[1].AnswerId); Assert.AreEqual(answer.AnswerDuration, answerVersions[1].AnswerDuration); Assert.AreEqual(answer.FinishedAt.ToString(), answerVersions[1].FinishedAt.ToString()); Assert.AreEqual(language.Id, answerVersions[1].LanguageId); Assert.AreEqual(site.Id, answerVersions[1].SiteId); Assert.AreEqual(answer.TimeZone, answerVersions[1].TimeZone); Assert.AreEqual(unit.Id, answerVersions[1].UnitId); Assert.AreEqual(answer.UtcAdjusted, answerVersions[1].UtcAdjusted); Assert.AreEqual(questionSet.Id, answerVersions[1].QuestionSetId); Assert.AreEqual(surveyConfiguration.Id, answerVersions[1].SurveyConfigurationId); Assert.AreEqual(answerVersions[1].WorkflowState, Constants.WorkflowStates.Removed); }
public async Task SQL_answers_Delete_DoesDelete_UTCAdjustedFalse() { // Arrange Random rnd = new Random(); sites site1 = await testHelpers.CreateSite(Guid.NewGuid().ToString(), rnd.Next(1, 255)); units unit1 = await testHelpers.CreateUnit(rnd.Next(1, 255), rnd.Next(1, 255), site1, rnd.Next(1, 255)); languages language = new languages(); language.Name = Guid.NewGuid().ToString(); language.Description = Guid.NewGuid().ToString(); await language.Create(dbContext).ConfigureAwait(false); string name = Guid.NewGuid().ToString(); question_sets questionSet = new question_sets { Name = name, Share = false, HasChild = false, PosiblyDeployed = false }; await questionSet.Create(dbContext).ConfigureAwait(false); survey_configurations surveyConfiguration = new survey_configurations { Name = Guid.NewGuid().ToString(), Stop = DateTime.Now, Start = DateTime.Now, TimeOut = rnd.Next(1, 255), TimeToLive = rnd.Next(1, 255), QuestionSetId = questionSet.Id }; await surveyConfiguration.Create(dbContext).ConfigureAwait(false); answers answer = new answers(); answer.SiteId = site1.Id; answer.QuestionSetId = questionSet.Id; answer.SurveyConfigurationId = surveyConfiguration.Id; answer.UnitId = unit1.Id; answer.TimeZone = Guid.NewGuid().ToString(); answer.FinishedAt = DateTime.Now; answer.LanguageId = language.Id; answer.AnswerDuration = rnd.Next(1, 255); answer.UtcAdjusted = false; await answer.Create(dbContext).ConfigureAwait(false); // Act await answer.Delete(dbContext); answers dbAnswer = dbContext.answers.AsNoTracking().First(); answer_versions dbVersion = dbContext.answer_versions.AsNoTracking().First(); // Assert Assert.NotNull(dbAnswer); Assert.NotNull(dbVersion); Assert.AreEqual(dbAnswer.SiteId, answer.SiteId); Assert.AreEqual(dbAnswer.QuestionSetId, answer.QuestionSetId); Assert.AreEqual(dbAnswer.SurveyConfigurationId, answer.SurveyConfigurationId); Assert.AreEqual(dbAnswer.UnitId, answer.UnitId); Assert.AreEqual(dbAnswer.TimeZone, answer.TimeZone); Assert.AreEqual(dbAnswer.FinishedAt.ToString(), answer.FinishedAt.ToString()); Assert.AreEqual(dbAnswer.LanguageId, answer.LanguageId); Assert.AreEqual(dbAnswer.AnswerDuration, answer.AnswerDuration); Assert.AreEqual(dbAnswer.UtcAdjusted, answer.UtcAdjusted); Assert.AreEqual(Constants.WorkflowStates.Removed, answer.WorkflowState); }