public void UsrFavoursParentMusicType_BannerTargetsChild_BannerIsServed() { Usr u = new Usr(); u.Name = Guid.NewGuid().ToString(); u.Update(); MusicType parentMusicType = new MusicType() { ParentK = 1 }; parentMusicType.Update(); MusicType childMusicType = new MusicType() { ParentK = parentMusicType.K }; childMusicType.Update(); UsrMusicTypeFavourite umtf = new UsrMusicTypeFavourite() { MusicTypeK = parentMusicType.K, UsrK = u.K }; umtf.Update(); Banner b = new Banner() { IsMusicTargetted = true }; b.Update(); b.SaveMusicTargetting(new List<int>() { childMusicType.K }); MusicTypesFavouredByIdentityRule rule = new MusicTypesFavouredByIdentityRule(new UsrIdentity(u)); RequestRules rr = new RequestRules(); rr.MusicTypes = rule; ReadOnlyCollection<BannerDataHolder> results = rr.GetBannersSatsfyingQueryConditionsInTimeslot(Timeslots.GetCurrentTimeslot()); Assert.IsTrue(ContainsBanner(b.K, results)); }
public void UsrFavoursOneMusicType_BannerTargetsAnother_BannerIsNotServed() { Usr u = new Usr(); u.Name = Guid.NewGuid().ToString(); u.Update(); MusicType musicTypeA = new MusicType() { ParentK = 1 }; musicTypeA.Update(); MusicType musicTypeB = new MusicType() { ParentK = 1 }; musicTypeB.Update(); UsrMusicTypeFavourite umtf = new UsrMusicTypeFavourite() { MusicTypeK = musicTypeA.K, UsrK = u.K }; umtf.Update(); Banner b = new Banner() { IsMusicTargetted = true }; b.Update(); BannerMusicType bmt = new BannerMusicType() { BannerK = b.K, MusicTypeK = musicTypeB.K }; bmt.Update(); MusicTypesFavouredByIdentityRule rule = new MusicTypesFavouredByIdentityRule(new UsrIdentity(u)); RequestRules rr = new RequestRules() { MusicTypes = rule }; ReadOnlyCollection<BannerDataHolder> results = rr.GetBannersSatsfyingQueryConditionsInTimeslot(Timeslots.GetCurrentTimeslot()); Assert.IsFalse(ContainsBanner(b.K, results)); }