public void TestGetAboutThisItemViewModelGoodItem()
        {
            var rubricEntry = new RubricEntry
            {
                Scorepoint = "0",
                Name       = "TestName",
                Value      = "TestValue"
            };

            var sampleResponces = new List <SampleResponse>()
            {
                new SampleResponse()
                {
                    Purpose       = "TestPurpose",
                    ScorePoint    = "0",
                    Name          = "TestName",
                    SampleContent = "TestSampleContent"
                },
                new SampleResponse()
                {
                    Purpose       = "TestPurpose1",
                    ScorePoint    = "1",
                    Name          = "TestName1",
                    SampleContent = "TestSampleContent1"
                }
            };

            var rubricSample = new RubricSample
            {
                MaxValue        = "MaxVal",
                MinValue        = "MinVal",
                SampleResponses = sampleResponces
            };

            var        entries = ImmutableArray.Create(rubricEntry);
            var        samples = ImmutableArray.Create(rubricSample);
            var        rubric  = new Rubric("ENU", entries, samples);
            var        rubrics = ImmutableArray.Create(rubric);
            SampleItem item    = SampleItem.Create(
                bankKey: GoodBankKey,
                itemKey: 209,
                isPerformanceItem: true,
                associatedStimulus: 1,
                fieldTestUse: fieldTestUseVar,
                rubrics: rubrics,
                depthOfKnowledge: "TestDepth");

            var aboutThisItemViewModel = ItemViewRepo.GetAboutThisItemViewModel(item);

            Assert.NotNull(aboutThisItemViewModel);
            Assert.Equal(aboutThisItemViewModel.Rubrics.Length, 1);
            Assert.Equal(aboutThisItemViewModel.Rubrics[0], rubric);
            Assert.Equal(aboutThisItemViewModel.DepthOfKnowledge, "TestDepth");
        }
        public void TestMoreNAGrade()
        {
            var itemDigest = SampleItem.Create(claim: Claim1, subject: Ela);
            var more       = ItemViewRepo.GetMoreLikeThis(itemDigest);

            Assert.Equal(3, more.GradeAboveItems.ItemCards.Count());
            Assert.Equal(3, more.GradeBelowItems.ItemCards.Count());
            Assert.Equal(3, more.SameGradeItems.ItemCards.Count());

            foreach (var card in more.GradeAboveItems.ItemCards)
            {
                Assert.Equal(GradeLevels.NA, card.Grade);
            }
            foreach (var card in more.SameGradeItems.ItemCards)
            {
                Assert.Equal(GradeLevels.NA, card.Grade);
            }
            foreach (var card in more.GradeBelowItems.ItemCards)
            {
                Assert.Equal(GradeLevels.NA, card.Grade);
            }
        }
        public void TestMoreLikeThisHappyCase()
        {
            var itemDigest = SampleItem.Create(subject: Math, claim: Claim1, grade: GradeLevels.Grade6);
            var more       = ItemViewRepo.GetMoreLikeThis(itemDigest);

            Assert.Equal(3, more.GradeAboveItems.ItemCards.Count());
            Assert.Equal(3, more.GradeBelowItems.ItemCards.Count());
            Assert.Equal(3, more.SameGradeItems.ItemCards.Count());

            foreach (var card in more.GradeAboveItems.ItemCards)
            {
                Assert.Equal(GradeLevels.Grade7, card.Grade);
            }
            foreach (var card in more.SameGradeItems.ItemCards)
            {
                Assert.Equal(GradeLevels.Grade6, card.Grade);
            }
            foreach (var card in more.GradeBelowItems.ItemCards)
            {
                Assert.Equal(GradeLevels.Grade5, card.Grade);
            }
        }
        public void TestMoreUnknownSubject()
        {
            var itemDigest = SampleItem.Create(claim: Claim1, subject: NotASubject, grade: GradeLevels.Grade4);
            var more       = ItemViewRepo.GetMoreLikeThis(itemDigest);

            Assert.Equal(3, more.GradeAboveItems.ItemCards.Count());
            Assert.Equal(3, more.GradeBelowItems.ItemCards.Count());
            Assert.Equal(3, more.SameGradeItems.ItemCards.Count());

            var countAbove    = more.GradeAboveItems.ItemCards.Count(c => c.ClaimCode == Claim1.Code);
            var expectedAbove = Context.ItemCards.Count(c => c.ClaimCode == Claim1.Code && c.Grade == GradeLevels.Grade5);

            Assert.Equal(System.Math.Min(expectedAbove, 3), countAbove);

            var countBelow    = more.GradeBelowItems.ItemCards.Count(c => c.ClaimCode == Claim1.Code);
            var expectedBelow = Context.ItemCards.Count(c => c.ClaimCode == Claim1.Code && c.Grade == GradeLevels.Grade3);

            Assert.Equal(System.Math.Min(expectedBelow, 3), countBelow);

            var countSame    = more.SameGradeItems.ItemCards.Count(c => c.ClaimCode == Claim1.Code);
            var expectedSame = Context.ItemCards.Count(c => c.ClaimCode == Claim1.Code && c.Grade == GradeLevels.Grade4);

            Assert.Equal(System.Math.Min(expectedSame, 3), countSame);
        }
        public ItemViewRepoTests()
        {
            GoodBankKey      = 1;
            BadBankKey       = 3;
            BadItemKey       = 9;
            GoodItemKey      = 4;
            DuplicateBankKey = 5;
            DuplicateItemKey = 6;
            MathCard         = ItemCardViewModel.Create(bankKey: GoodBankKey, itemKey: GoodItemKey);
            ElaCard          = ItemCardViewModel.Create(bankKey: BadBankKey, itemKey: BadItemKey);
            DuplicateCard    = ItemCardViewModel.Create(bankKey: DuplicateBankKey, itemKey: DuplicateItemKey);
            MathDigest       = SampleItem.Create(bankKey: GoodBankKey, itemKey: GoodItemKey);
            ElaDigest        = SampleItem.Create(bankKey: BadBankKey, itemKey: BadItemKey);

            fieldTestUseVar                = new FieldTestUse();
            fieldTestUseVar.Code           = "ELA";
            fieldTestUseVar.QuestionNumber = 1;

            DuplicateDigest = SampleItem.Create(bankKey: GoodBankKey, itemKey: DuplicateItemKey);
            var duplicateDigest2 = SampleItem.Create(bankKey: GoodBankKey, itemKey: DuplicateItemKey);

            PerformanceDigest          = SampleItem.Create(bankKey: GoodBankKey, itemKey: 209, isPerformanceItem: true, associatedStimulus: 1, fieldTestUse: fieldTestUseVar);
            PerformanceDigestDuplicate = SampleItem.Create(bankKey: DuplicateBankKey, itemKey: 210, isPerformanceItem: true, associatedStimulus: 1, fieldTestUse: fieldTestUseVar);

            BrailleItem = SampleItem.Create(bankKey: GoodBankKey, itemKey: 211, isPerformanceItem: true, associatedStimulus: 1,
                                            fieldTestUse: fieldTestUseVar,
                                            brailleOnlyItem: false,
                                            brailleItemCodes: ImmutableArray.Create("123"),
                                            braillePassageCodes: ImmutableArray.Create("123"));

            BrailleItemDuplicate = SampleItem.Create(bankKey: DuplicateBankKey, itemKey: 212, isPerformanceItem: true, associatedStimulus: 1,
                                                     fieldTestUse: fieldTestUseVar,
                                                     brailleOnlyItem: false,
                                                     brailleItemCodes: ImmutableArray.Create("123"),
                                                     braillePassageCodes: ImmutableArray.Create("123"));

            BrailleItemReplace = SampleItem.Create(bankKey: DuplicateBankKey, itemKey: 213, isPerformanceItem: true, associatedStimulus: 2,
                                                   fieldTestUse: fieldTestUseVar,
                                                   brailleOnlyItem: true,
                                                   brailleItemCodes: ImmutableArray.Create("123"),
                                                   braillePassageCodes: ImmutableArray.Create("123"),
                                                   copiedFromItem: 211);

            SampleItems = ImmutableArray.Create(MathDigest, ElaDigest, DuplicateDigest, DuplicateDigest, DuplicateDigest, PerformanceDigest, PerformanceDigestDuplicate, BrailleItem, BrailleItemDuplicate, BrailleItemReplace);
            var itemCards = ImmutableArray.Create(MathCard, ElaCard, DuplicateCard, DuplicateCard, DuplicateCard);

            Math = new Subject("Math", "", "", new ImmutableArray <Claim>()
            {
            }, new ImmutableArray <string>()
            {
            });
            Ela = new Subject("ELA", "", "", new ImmutableArray <Claim>()
            {
            }, new ImmutableArray <string>()
            {
            });
            NotASubject = new Subject("NotASubject", "", "", new ImmutableArray <Claim>()
            {
            }, new ImmutableArray <string>()
            {
            });
            Claim1 = new Claim("1", "", "");
            Claim2 = new Claim("2", "", "");

            //generated item cards for more like this tests
            itemCards = itemCards.AddRange(MoreItemCards());
            var settings = new AppSettings()
            {
                SettingsConfig = new SettingsConfig()
                {
                    NumMoreLikeThisItems = 3
                }
            };

            Context = SampleItemsContext.Create(sampleItems: SampleItems, itemCards: itemCards, appSettings: settings);

            var loggerFactory = new Mock <ILoggerFactory>();
            var logger        = new Mock <ILogger>();

            loggerFactory.Setup(lf => lf.CreateLogger(It.IsAny <string>())).Returns(logger.Object);
            ItemViewRepo = new ItemViewRepo(Context, loggerFactory.Object);
        }
Esempio n. 6
0
        public ItemControllerTests()
        {
            bankKey = 234343;
            itemKey = 485954;

            SampleItem digest = SampleItem.Create
                                (
                bankKey: bankKey,
                itemKey: itemKey,
                grade: GradeLevels.NA
                                );
            ItemCardViewModel card = digest.ToItemCardViewModel();

            var aboutThisItemVM = new AboutThisItemViewModel(
                rubrics: ImmutableArray.Create <Rubric>(),
                itemCard: card,
                depthOfKnowledge: "",
                targetDescription: "",
                commonCoreStandardsDescription: "");


            SampleItem digestCookie = SampleItem.Create
                                      (
                bankKey: bankKey,
                itemKey: 0,
                grade: GradeLevels.NA
                                      );
            ItemCardViewModel cardCookie = digest.ToItemCardViewModel();

            var aboutItemCookie = new AboutThisItemViewModel(
                rubrics: ImmutableArray.Create <Rubric>(),
                itemCard: cardCookie,
                depthOfKnowledge: "",
                targetDescription: "",
                commonCoreStandardsDescription: "");



            iSAAP = "TDS_test;TDS_test2;";

            string accCookieName = "accessibilitycookie";

            var accessibilityResourceGroups = new List <AccessibilityResourceGroup>();

            var appSettings = new AppSettings()
            {
                SettingsConfig = new SettingsConfig()
                {
                    AccessibilityCookie = accCookieName
                }
            };

            itemViewModel = new ItemViewModel(
                itemViewerServiceUrl: $"http://itemviewerservice.cass.oregonstate.edu/item/{bankKey}-{itemKey}",
                accessibilityCookieName: accCookieName,
                isPerformanceItem: false,
                accResourceGroups: default(ImmutableArray <AccessibilityResourceGroup>),
                subject: "MATH",
                moreLikeThisVM: default(MoreLikeThisViewModel),
                brailleItemCodes: new ImmutableArray <string>(),
                braillePassageCodes: new ImmutableArray <string>(),
                brailleItem: null,
                nonBrailleItem: null);

            itemViewModelCookie = new ItemViewModel(
                itemViewerServiceUrl: string.Empty,
                accessibilityCookieName: string.Empty,
                isPerformanceItem: false,
                subject: "MATH",
                accResourceGroups: accessibilityResourceGroups.ToImmutableArray(),
                moreLikeThisVM: default(MoreLikeThisViewModel),
                brailleItemCodes: new ImmutableArray <string>(),
                braillePassageCodes: new ImmutableArray <string>(),
                brailleItem: null,
                nonBrailleItem: null);

            var itemViewRepoMock = new Mock <IItemViewRepo>();

            itemViewRepoMock
            .Setup(repo =>
                   repo.GetItemViewModel(bankKey, itemKey, It.Is <string[]>(strings => strings.Length == 0), It.IsAny <Dictionary <string, string> >()))
            .Returns(itemViewModel);

            itemViewRepoMock
            .Setup(repo =>
                   repo.GetItemViewModel(
                       bankKey,
                       itemKey,
                       It.Is <string[]>(ss => Enumerable.SequenceEqual(ss, iSAAP.Split(';'))),
                       It.IsAny <Dictionary <string, string> >()))
            .Returns(itemViewModel);

            var loggerFactory = new Mock <ILoggerFactory>();
            var logger        = new Mock <ILogger>();

            loggerFactory.Setup(lf => lf.CreateLogger(It.IsAny <string>())).Returns(logger.Object);

            controller = new ItemController(itemViewRepoMock.Object, appSettings, loggerFactory.Object);
        }