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();
        }
Example #3
0
        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();
        }
Example #7
0
 public UnitOfWork(BlogContext context)
 {
     _context       = context;
     Articles       = new ArticleRepository(_context);
     Comments       = new CommentRepository(_context);
     Questionnaires = new QuestionnaireRepository(_context);
 }
Example #8
0
        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());
        }
Example #9
0
        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();
        }
Example #14
0
 public ModuleManager()
 {
     IdeationRepo      = new IdeationRepository();
     QuestionnaireRepo = new QuestionnaireRepository();
 }