public void WhenExceptionOccursDuringQueryForQuestionnaireTemplateSummary_ThenExceptionCapturedAndReturned() { var mockAsyncResult = new Mock <IAsyncResult>(); var mockService = new Mock <IQuestionnaireService>(); mockService .Setup(s => s.BeginGetQuestionnaireTemplateSummary(It.IsAny <QuestionnaireTemplate>(), It.IsAny <AsyncCallback>(), It.IsAny <object>())) .Returns(mockAsyncResult.Object) .Callback <QuestionnaireTemplate, AsyncCallback, object>( (qt, c, o) => { c(mockAsyncResult.Object); }); mockService .Setup(s => s.EndGetQuestionnaireTemplateSummary(It.IsAny <IAsyncResult>())) .Throws(new NotImplementedException("TestException")); var repository = new QuestionnaireRepository(mockService.Object); IOperationResult <QuestionnaireTemplateSummary> getResult = null; repository.GetQuestionnaireTemplateSummaryAsync(new QuestionnaireTemplate(), (r) => { getResult = r; }); EnqueueConditional(() => getResult != null); EnqueueCallback(() => { Assert.IsInstanceOfType(getResult.Error, typeof(NotImplementedException)); }); EnqueueTestComplete(); }
public void WhenQueryingForQuestionnareTemplates_ThenProvidesQuestionnaireTemplateResult() { AsyncResult <IEnumerable <QuestionnaireTemplate> > ar = null; QuestionnaireTemplate[] suppliedQuestionnaire = new[] { new QuestionnaireTemplate() }; var serviceMock = new MockQuestionnaireService(); serviceMock.HandleBeginGetQuestionnaireTemplates = (r) => ar = r; var repository = new QuestionnaireRepository(serviceMock); IOperationResult <IEnumerable <QuestionnaireTemplate> > getResult = null; repository.GetQuestionnaireTemplatesAsync((result) => getResult = result); serviceMock.ProceedGetQuestionnaireTemplates(ar, suppliedQuestionnaire); EnqueueConditional(() => getResult != null); EnqueueCallback(() => { Assert.AreSame(suppliedQuestionnaire.ElementAt(0), getResult.Result.ElementAt(0)); }); EnqueueTestComplete(); }
public void Should_Be_Able_To_Update_Untracked_Entities() { var builder = new DbContextOptionsBuilder <DailyTrackerContext>() .UseSqlite("Data Source=test.db"); // arrange var q = questionnaire(default(int)); var context = new DailyTrackerContext(builder.Options); var repo = new QuestionnaireRepository(_context, new EntityPredicate()); repo.Save(q); context.SaveChanges(); // act var questionnaireId = q.QuestionnaireId; var nextContext = new DailyTrackerContext(builder.Options); var nextRepo = new QuestionnaireRepository(nextContext, new EntityPredicate()); var updatedQ = new Questionnaire { Name = "Updated", QuestionnaireId = questionnaireId }; nextRepo.Save(updatedQ); // assert var updatedFromDb = nextRepo.GetById(questionnaireId); Assert.AreEqual(updatedFromDb.Name, "Updated"); }
public void WhenQueryingForQuestionnareTemplateSummary_ThenProvidesQuestionnaireTemplateSummaryResult() { AsyncResult <QuestionnaireTemplateSummary> ar = null; QuestionnaireTemplateSummary suppliedQuestionnaireTemplateSummary = new QuestionnaireTemplateSummary(); var serviceMock = new MockQuestionnaireService(); serviceMock.HandleBeginGetQuestionnaireTemplateSummary = (r) => ar = r; var repository = new QuestionnaireRepository(serviceMock); IOperationResult <QuestionnaireTemplateSummary> getResult = null; repository.GetQuestionnaireTemplateSummaryAsync(new QuestionnaireTemplate(), (result) => getResult = result); serviceMock.ProceedGetQuestionnaireTemplateSummary(ar, suppliedQuestionnaireTemplateSummary); EnqueueConditional(() => getResult != null); EnqueueCallback(() => { Assert.AreSame(suppliedQuestionnaireTemplateSummary, getResult.Result); }); EnqueueTestComplete(); }
public void WhenServiceThrowsAnError_ThenErrorIsCaptured() { var mockAsyncResult = new Mock <IAsyncResult>(); var mockService = new Mock <IQuestionnaireService>(); mockService .Setup(s => s.BeginGetQuestionnaireTemplates(It.IsAny <AsyncCallback>(), It.IsAny <object>())) .Returns(mockAsyncResult.Object) .Callback <AsyncCallback, object>((c, o) => { c(mockAsyncResult.Object); }); mockService .Setup(s => s.EndGetQuestionnaireTemplates(It.IsAny <IAsyncResult>())) .Throws(new NotImplementedException("TestException")); var repository = new QuestionnaireRepository(mockService.Object); IOperationResult <IEnumerable <QuestionnaireTemplate> > getResult = null; repository.GetQuestionnaireTemplatesAsync((r) => { getResult = r; }); EnqueueConditional(() => getResult != null); EnqueueCallback(() => { Assert.IsInstanceOfType(getResult.Error, typeof(NotImplementedException)); }); EnqueueTestComplete(); }
public void WhenExceptionOccursDuringSubmission_ThenExceptionCapturedAndReturned() { var mockAsyncResult = new Mock <IAsyncResult>(); var mockService = new Mock <IQuestionnaireService>(); mockService .Setup(s => s.BeginSubmitResponses(It.IsAny <Questionnaire>(), It.IsAny <AsyncCallback>(), It.IsAny <object>())) .Returns(mockAsyncResult.Object) .Callback <Questionnaire, AsyncCallback, object>((q, c, o) => { c(mockAsyncResult.Object); }); mockService .Setup(s => s.EndSubmitResponses(It.IsAny <IAsyncResult>())) .Throws(new NotImplementedException("TestException")); var repository = new QuestionnaireRepository(mockService.Object); IOperationResult submitResult = null; repository.SubmitQuestionnaireAsync( new Questionnaire(), (r) => { submitResult = r; } ); EnqueueConditional(() => submitResult != null); EnqueueCallback(() => { Assert.IsInstanceOfType(submitResult.Error, typeof(NotImplementedException)); }); EnqueueTestComplete(); }
public UnitOfWork(BlogContext context) { _context = context; Articles = new ArticleRepository(_context); Comments = new CommentRepository(_context); Questionnaires = new QuestionnaireRepository(_context); }
public QuestionnaireRepositoryTests() { var builder = new DbContextOptionsBuilder <DailyTrackerContext>() .UseSqlite("Data Source=test.db"); _context = new DailyTrackerContext(builder.Options); _context.Database.Migrate(); _repo = new QuestionnaireRepository(_context, new EntityPredicate()); }
public UnitOfWork() { if (_context == null) { _context = new FestiSpecEntities(); } Inspectors = new InspectorRepository(_context); NawEmployee = new NAWEmployeeRepository(_context); Employee = new EmployeeRepository(_context); RoleEmployee = new RoleEmployeeRepository(_context); NAWInspectors = new NAWInspector_Repository(_context); Questionnaires = new QuestionnaireRepository(_context); Inspections = new InspectionRepository(_context); InspectionLocations = new LocationRepository(_context); Customers = new CustomerRepository(_context); ContactPersons = new ContactPersonRepository(_context); Certificates = new CertificatesRepository(_context); NAWCustomers = new NAWCustomerRepository(_context); }
public void WhenQueryingForQuestionnaireTemplateSummary_ThenPostsCallingThreadsSyncContext() { var mockAsyncResult = new Mock <IAsyncResult>(); var mockService = new Mock <IQuestionnaireService>(); mockService .Setup(s => s.BeginGetQuestionnaireTemplateSummary(It.IsAny <QuestionnaireTemplate>(), It.IsAny <AsyncCallback>(), It.IsAny <object>())) .Returns(mockAsyncResult.Object) .Callback <QuestionnaireTemplate, AsyncCallback, object>( (qt, c, o) => { System.Threading.ThreadPool.QueueUserWorkItem( (state) => { c(mockAsyncResult.Object); }); }); mockService .Setup(s => s.EndGetQuestionnaireTemplateSummary(It.IsAny <IAsyncResult>())) .Returns(new QuestionnaireTemplateSummary()); var repository = new QuestionnaireRepository(mockService.Object); int callingThreadId = System.Threading.Thread.CurrentThread.ManagedThreadId; int calledBackThreadId = 0; IOperationResult <QuestionnaireTemplateSummary> getResult = null; repository.GetQuestionnaireTemplateSummaryAsync( new QuestionnaireTemplate(), (r) => { getResult = r; calledBackThreadId = System.Threading.Thread.CurrentThread.ManagedThreadId; }); EnqueueConditional(() => getResult != null); EnqueueCallback(() => { Assert.AreEqual(callingThreadId, calledBackThreadId); }); EnqueueTestComplete(); }
public void WhenQueryingForQuestionnaireTemplates_ThenInvokesCallback() { AsyncResult <IEnumerable <QuestionnaireTemplate> > ar = null; var serviceMock = new MockQuestionnaireService(); serviceMock.HandleBeginGetQuestionnaireTemplates = (r) => ar = r; var repository = new QuestionnaireRepository(serviceMock); bool calledBack = false; repository.GetQuestionnaireTemplatesAsync((result) => { calledBack = true; }); serviceMock.ProceedGetQuestionnaireTemplates(ar, new[] { new QuestionnaireTemplate() }); EnqueueConditional(() => calledBack); EnqueueCallback(() => { Assert.IsTrue(calledBack); }); EnqueueTestComplete(); }
public void WhenSubmittingQuestionnare_ThenInvokesCallback() { AsyncResult <object> ar = null; var serviceMock = new MockQuestionnaireService(); serviceMock.HandleBeginSubmitResponses = (r) => ar = r; var repository = new QuestionnaireRepository(serviceMock); bool calledBack = false; repository.SubmitQuestionnaireAsync(new Questionnaire(), (result) => { calledBack = true; }); serviceMock.ProceedSubmitResponses(ar); EnqueueConditional(() => calledBack); EnqueueCallback(() => { Assert.IsTrue(calledBack); }); EnqueueTestComplete(); }
public void WhenSubmittingQuestionnaire_ThenPostsToCallingThreadsSyncContext() { var mockAsyncResult = new Mock <IAsyncResult>(); var mockService = new Mock <IQuestionnaireService>(); mockService .Setup(s => s.BeginSubmitResponses(It.IsAny <Questionnaire>(), It.IsAny <AsyncCallback>(), It.IsAny <object>())) .Returns(mockAsyncResult.Object) .Callback <Questionnaire, AsyncCallback, object>((q, c, o) => { System.Threading.ThreadPool.QueueUserWorkItem( (state) => { c(mockAsyncResult.Object); }); }); mockService .Setup(s => s.EndSubmitResponses(It.IsAny <IAsyncResult>())); var repository = new QuestionnaireRepository(mockService.Object); int callingThreadId = System.Threading.Thread.CurrentThread.ManagedThreadId; int calledBackThreadId = 0; IOperationResult submitResult = null; repository.SubmitQuestionnaireAsync( new Questionnaire(), (r) => { submitResult = r; calledBackThreadId = System.Threading.Thread.CurrentThread.ManagedThreadId; } ); EnqueueConditional(() => submitResult != null); EnqueueCallback(() => { Assert.AreEqual(callingThreadId, calledBackThreadId); }); EnqueueTestComplete(); }
public ModuleManager() { IdeationRepo = new IdeationRepository(); QuestionnaireRepo = new QuestionnaireRepository(); }