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); }
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); }
public AboutThisItemViewModel( ImmutableArray <Rubric> rubrics, ItemCardViewModel itemCard, string targetDescription, string depthOfKnowledge, string commonCoreStandardsDescription) { ItemCardViewModel = itemCard; Rubrics = rubrics; TargetDescription = targetDescription; DepthOfKnowledge = depthOfKnowledge; CommonCoreStandardsDescription = commonCoreStandardsDescription; }
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() });
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); }
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()); }
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); }
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); }
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); }