public void ToReadingProgramVM_should_map_all_properties()
        {
            // Given
            var program = _testFactory.NewReadingProgramInfo();

            // When
            var result = program.ToReadingProgramVM();

            // Then
            EarlyLearningAssert.AreEqual(program, result);
        }
        public async Task CreateNewProgram_should_return_program_info_for_new_program()
        {
            // Given
            var children = SetupChildren();

            // When
            var result = await SUT.CreateNewProgram(children, userId, "sv", ReadingProgramType.SingleWords);

            // Then
            var inDb = GetReadingProgramForChildren(children);

            EarlyLearningAssert.AreEqual(inDb, result);
        }
        public async Task CheckTitle_should_return_spelling_for_unknown_word()
        {
            // Given
            var program = _testFactory.AddNewReadingProgram();
            var url     = baseUrl + "/check-title?title=Nya blomor&programId=" + program.Id;

            // When
            var result = await SUT.GetAsync(url);

            // Then
            EarlyLearningAssert.HttpResultIsOk(result);
            var resultData = EarlyLearningAssert.DataInResult <TitleCheckVM>(result);

            Assert.IsFalse(resultData.Spelling);
        }
        public async Task CheckTitle_should_return_ok_for_unique_category_title_spelled_correctly()
        {
            // Given
            var program = _testFactory.AddNewReadingProgram();
            var url     = baseUrl + "/check-title?title=Nya blommor&programId=" + program.Id;

            // When
            var result = await SUT.GetAsync(url);

            // Then
            EarlyLearningAssert.HttpResultIsOk(result);
            var resultData = EarlyLearningAssert.DataInResult <TitleCheckVM>(result);

            Assert.IsTrue(resultData.IsOk, "Result was not ok flagged");
        }
示例#5
0
        public async Task GetAllReadingProgramsForUser_should_return_programs()
        {
            // Given
            var programs = new[]
            {
                _testFactory.AddNewReadingProgram()
            };

            _testFactory.AddNewReadingProgram("other id");

            // When
            var result = await SUT.GetAsync(baseUrl);

            // Then
            EarlyLearningAssert.AreEqual(programs, result);
        }
示例#6
0
        public async Task GetCurrent_should_return_categories_that_are_current_on_the_program()
        {
            // Given
            var categories = _testFactory.AddNewWordCategories(5, _programId, new CurrentlyActive());

            _testFactory.AddNewWordCategories(programId: "Other id", status: new CurrentlyActive());
            _testFactory.AddNewWordCategories(programId: _programId, status: new Planned());

            _testFactory.WaitOfIndexesInDocumentStore();

            // When
            var result = await SUT.GetCurrent();

            // Then
            EarlyLearningAssert.AreEqual(categories, result);
        }
示例#7
0
        public async Task AddChild_should_return_badRequest_if_childToAdd_isnt_valid()
        {
            // Given
            var childToAdd = new AddChildVM
            {
                FirstName = "Adam",
                LastName  = null
            };

            SUT.ModelState.AddModelError("LastName", "Last name required");

            // When
            var result = await SUT.AddChild(childToAdd);

            // Then
            EarlyLearningAssert.HttpResultIsBadRequest("Invalid child", result);
        }
        public async Task GetReadingProgramsForUser_should_return_reading_programs_for_current_user()
        {
            // Given
            var programs = new[]
            {
                _testFactory.NewReadingProgramInfo(),
                _testFactory.NewReadingProgramInfo()
            };

            _programManager.Setup(x => x.GetAllProgramsForUser(userId)).ReturnsAsync(programs);

            // When
            var result = await SUT.GetReadingProgramsForUser();

            // Then
            EarlyLearningAssert.AreEqual(programs, result);
        }
        public async Task GetAllProgramsForUser_should_return_programs_for_user_in_ravenDb()
        {
            // Given
            var programs = new[]
            {
                _testFactory.AddNewReadingProgram(userId),
                _testFactory.AddNewReadingProgram(userId)
            };

            _testFactory.AddNewReadingProgram(userId + 1);

            // When
            var result = await SUT.GetAllProgramsForUser(userId);

            // Then
            EarlyLearningAssert.AreEqual(programs, result, EarlyLearningAssert.AreEqual);
        }
        public async Task CheckTitle_should_return_existing()
        {
            // Given
            var program = _testFactory.AddNewReadingProgram();

            _testFactory.AddNewWordCategory(program.Id, "Blommor");
            var url = baseUrl + "/check-title?title=Blommor&programId=" + program.Id;

            // When
            var result = await SUT.GetAsync(url);

            // Then
            EarlyLearningAssert.HttpResultIsOk(result);
            var resultData = EarlyLearningAssert.DataInResult <TitleCheckVM>(result);

            Assert.IsTrue(resultData.AlreadyExists);
            Assert.AreEqual("Blommor 2", resultData.Suggestion.ElementAt(0));
        }
示例#11
0
        public async Task GetChildrenForUser_should_return_children_for_user()
        {
            // Given
            var expectedChildren = new[]
            {
                await SUT.AddChildForUser("Adam", "Smith", UserId),
                await SUT.AddChildForUser("Lisa", "Adams", UserId)
            };
            await SUT.AddChildForUser("Nils", "Ericsson", "Other userId");

            _testFactory.WaitOfIndexesInDocumentStore();

            // When
            var result = await SUT.GetChildrenForUser(UserId);

            // Then
            EarlyLearningAssert.AreEqual(expectedChildren, result, EarlyLearningAssert.AreEqual);
        }
示例#12
0
        public async Task GetChildren_should_return_all_children_from_manager()
        {
            // Given
            var children = new[]
            {
                _testFactory.NewChild(),
                _testFactory.NewChild()
            };

            _manager.Setup(x => x.GetChildrenForUser(_testFactory.CurrentUser.UserId)).ReturnsAsync(children);

            // When
            var result = await SUT.GetChildren();

            // Then
            EarlyLearningAssert.HttpResultIsOk(result);
            var actualData = EarlyLearningAssert.DataInResult <IEnumerable <ChildVM> >(result);

            EarlyLearningAssert.AreEqual(children, actualData, EarlyLearningAssert.AreEqual);
        }
示例#13
0
        public async Task AddChild_should_return_child_from_manager()
        {
            // Given
            var childToAdd = new AddChildVM
            {
                FirstName = "Adam",
                LastName  = "Smith"
            };
            var child = _testFactory.NewChild("Adam", "Smith");

            _manager.Setup(x => x.AddChildForUser("Adam", "Smith", _testFactory.CurrentUser.UserId))
            .ReturnsAsync(child);

            // When
            var result = await SUT.AddChild(childToAdd);

            // Then
            EarlyLearningAssert.HttpResultIsOk(result);
            EarlyLearningAssert.AreEqual(child, EarlyLearningAssert.DataInResult <ChildVM>(result));
        }
        public async Task RegisterSession_should_return_ok_for_registered_sessions()
        {
            // Given
            var program  = _testFactory.AddNewReadingProgram();
            var category = _testFactory.AddNewWordCategory(program.Id);

            var toRegister = new RegisterReadingSessionVM
            {
                ProgramId        = program.Id,
                ChildIds         = program.Children,
                NumberOfSessions = 1,
                ReadingUnitId    = category.Id
            };

            var url = baseUrl + "/register-session";

            // When
            var result = await SUT.PostAsync(url, new StringContent(TestFactory.ToJson(toRegister)));

            // Then
            EarlyLearningAssert.HttpResultIsOk(result);
        }
        public async Task GetChildren_should_return_expected_children()
        {
            // Given
            var currentUserId = "abcd-abcd-abcd-abcd";
            var children      = new[]
            {
                _testFactory.AddNewChild("Name 1", "Smith", currentUserId),
                _testFactory.AddNewChild("Name 2", "Smith", currentUserId)
            };

            _testFactory.AddNewChild("Name 3", "Olson", "1234-1234-1234-1234");

            _testFactory.WaitOfIndexesInDocumentStore();

            // When
            var result = await SUT.GetAsync(baseUrl);

            // Then
            EarlyLearningAssert.HttpResultIsOk(result);
            var actualResult = EarlyLearningAssert.DataInResult <ChildVM[]>(result);

            EarlyLearningAssert.AreEqual(children, actualResult, EarlyLearningAssert.AreEqual);
        }