コード例 #1
0
        public ItemsSearchControllerTests()
        {
            itemsSearchViewModel    = new ItemsSearchViewModel();
            itemsSearchViewModelBad = null;
            var sampleItemsSearchRepoMock           = new Mock <ISampleItemsSearchRepo>();
            var sampleItemsSearchRepoBadRequestMock = new Mock <ISampleItemsSearchRepo>();

            sampleItemsSearchRepoMock.Setup(x => x
                                            .GetItemCards(It.Is <ItemsSearchParams>(p => p.ItemId == null)))
            .Returns(new List <ItemCardViewModel>());

            sampleItemsSearchRepoMock.Setup(x => x
                                            .GetItemCards(It.Is <ItemsSearchParams>(p => p.ItemId == goodItemKey.ToString())))
            .Returns(new List <ItemCardViewModel> {
                ItemCardViewModel.Create(itemKey: goodItemKey)
            });

            sampleItemsSearchRepoMock.Setup(x => x.GetItemsSearchViewModel()).Returns(itemsSearchViewModel);
            sampleItemsSearchRepoBadRequestMock.Setup(x => x.GetItemsSearchViewModel()).Returns(itemsSearchViewModelBad);
            var loggerFactory = new Mock <ILoggerFactory>();
            var logger        = new Mock <ILogger>();

            loggerFactory.Setup(lf => lf.CreateLogger(It.IsAny <string>())).Returns(logger.Object);
            controller       = new BrowseItemsController(sampleItemsSearchRepoMock.Object, loggerFactory.Object);
            controllerBadReq = new BrowseItemsController(sampleItemsSearchRepoBadRequestMock.Object, loggerFactory.Object);
        }
コード例 #2
0
        public SampleItemsSearchRepoTests()
        {
            GoodItemKey = 2343;
            GoodBankKey = 8398;
            BadItemKey  = 9234;
            BadBankKey  = 1123;
            Claim1      = new Claim("claim1", "1", "ELA Claim 1");
            Claim2      = new Claim("claim2", "2", "Math Claim 1");
            ItMath      = new InteractionType("2", "Math Itype", "", 2);
            ItEla       = new InteractionType("1", "Ela Itype", "", 1);
            Math        = Subject.Create("Math", "Mathematics", "Math", ImmutableArray.Create(Claim2), ImmutableArray.Create(ItMath.Code));
            Ela         = Subject.Create("ELA", "English", "ELA", ImmutableArray.Create(Claim1), ImmutableArray.Create(ItEla.Code));
            var interactionTypes = ImmutableArray.Create(ItEla, ItMath);
            var subjects         = ImmutableArray.Create(Ela, Math);
            var itemCards        = ImmutableArray.Create(
                ItemCardViewModel.Create(bankKey: GoodBankKey, itemKey: GoodItemKey, grade: GradeLevels.Grade6,
                                         subjectCode: Math.Code, interactionTypeCode: ItMath.Code, claimCode: Claim1.Code),
                ItemCardViewModel.Create(bankKey: GoodBankKey, itemKey: BadItemKey, grade: GradeLevels.High,
                                         subjectCode: Math.Code, interactionTypeCode: ItMath.Code, claimCode: Claim2.Code),
                ItemCardViewModel.Create(bankKey: BadBankKey, itemKey: GoodItemKey, grade: GradeLevels.Grade9,
                                         subjectCode: Ela.Code, interactionTypeCode: ItEla.Code, claimCode: Claim1.Code),
                ItemCardViewModel.Create(bankKey: BadBankKey, itemKey: BadItemKey, grade: GradeLevels.Grade4,
                                         subjectCode: Ela.Code, interactionTypeCode: ItEla.Code, claimCode: Claim2.Code),
                ItemCardViewModel.Create(bankKey: 1, itemKey: 2, grade: GradeLevels.Grade12)
                );

            Context = SampleItemsContext.Create(itemCards: itemCards, subjects: subjects, interactionTypes: interactionTypes);

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

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

            SampleItemsSearchRepo = new SampleItemsSearchRepo(Context, loggerFactory.Object);
        }
コード例 #3
0
 public AboutThisItemViewModel(
     ImmutableArray <Rubric> rubrics,
     ItemCardViewModel itemCard,
     string targetDescription,
     string depthOfKnowledge,
     string commonCoreStandardsDescription)
 {
     ItemCardViewModel = itemCard;
     Rubrics           = rubrics;
     TargetDescription = targetDescription;
     DepthOfKnowledge  = depthOfKnowledge;
     CommonCoreStandardsDescription = commonCoreStandardsDescription;
 }
コード例 #4
0
 private object _convert(object value, Type targetType)
 {
     if (targetType != typeof(Item) && targetType != typeof(Item?))
     {
         throw new InvalidCastException($"value {value} of type {value.GetType()} is not convertable to {typeof(Item)}");
     }
     return(value switch
     {
         ItemCardViewModel itemCardVm
         => itemCardVm.Item,
         null when targetType == typeof(Item?)
         => null,
         _ => throw new InvalidOperationException()
     });
コード例 #5
0
        public void TestComparerNullSubject()
        {
            var comparer = new MoreLikeThisComparer(null, "1");
            var card1    = ItemCardViewModel.Create(subjectCode: "Math", claimCode: "1");
            var card2    = ItemCardViewModel.Create(subjectCode: "Math", claimCode: "2");
            var card3    = ItemCardViewModel.Create(subjectCode: "Ela", claimCode: "2");
            var cards    = new List <ItemCardViewModel>()
            {
                card2, card1, card3
            };
            var ordered = cards.OrderBy(c => c, comparer).ToList();

            Assert.NotNull(ordered);
            Assert.Equal(cards.Count, ordered.Count);
        }
コード例 #6
0
        private ImmutableArray <ItemCardViewModel> MoreItemCards()
        {
            var subjectCodes = new string[] { "Math", "ELA", "Science" };
            var claimCodes   = new string[] { "1", "2", "3" };
            var gradeValues  = GradeLevelsUtils.singleGrades.ToList();
            var moreCards    = new List <ItemCardViewModel>();

            for (int i = 10; i < 60; i++)
            {
                moreCards.Add(ItemCardViewModel.Create(
                                  bankKey: 10,
                                  itemKey: i,
                                  grade: gradeValues[i % gradeValues.Count],
                                  subjectCode: subjectCodes[i % subjectCodes.Length],
                                  claimCode: claimCodes[((i + 60) / 7) % claimCodes.Length]));
            }
            return(moreCards.ToImmutableArray());
        }
コード例 #7
0
        public static ItemCardViewModel ToItemCardViewModel(this SampleItem sampleItem)
        {
            string claimTitle = (string.IsNullOrEmpty(sampleItem.Claim?.ClaimNumber)) ? string.Empty : $"Claim {sampleItem.Claim.ClaimNumber}";
            string title      = $"{sampleItem.Subject?.ShortLabel} {sampleItem.Grade.ToDisplayString()} {claimTitle}";

            var card = ItemCardViewModel.Create(
                bankKey: sampleItem.BankKey,
                itemKey: sampleItem.ItemKey,
                title: title,
                grade: sampleItem.Grade,
                gradeLabel: sampleItem.Grade.ToDisplayString(),
                subjectCode: sampleItem.Subject?.Code,
                subjectLabel: sampleItem.Subject?.ShortLabel,
                claimCode: sampleItem.Claim?.Code,
                claimLabel: sampleItem.Claim?.Label,
                target: sampleItem.CoreStandards?.TargetIdLabel,
                interactionTypeCode: sampleItem.InteractionType?.Code,
                interactionTypeLabel: sampleItem.InteractionType?.Label,
                isPerformanceItem: sampleItem.IsPerformanceItem,
                brailleOnlyitem: sampleItem.BrailleOnlyItem);

            return(card);
        }
コード例 #8
0
        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);
        }
コード例 #9
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);
        }