public async Task VisibleControllerFilter() { var data = new VisibleApiDataHandler(); var list = new List <VisibleDisplay> { VisibleData.GetFirstDisplay() }; var filter = new VisibleFilter { TenantRestrict = true }; data.Result.Setup(m => m.Execute(It.IsAny <VisibleDisplayByFilter>())).Returns(list); var controller = new VisibleController(data, Cloud, Logic) { CurrentUser = StandardUser }; var result = await controller.Filter(filter) as OkObjectResult; result.Should().NotBeNull(); result.Should().BeOfType <OkObjectResult>(); result.Value.Should().NotBeNull(); var check = result.Value as PagedResult <IEnumerable <VisibleDisplay> >; check.Should().NotBeNull(); check.Data.Count().Should().Be(list.Count); Assert.That(check.Data, Is.DeepEqualTo(list)); data.HasExecuted.Should().BeTrue(); data.Result.Verify(s => s.Execute(It.IsAny <VisibleDisplayByFilter>()), Times.Once()); }
public async Task VisibleControllerFilterUnauthorized() { var data = new VisibleApiDataHandler(); var filter = new VisibleFilter { TenantRestrict = false }; data.Result.Setup(m => m.Execute(It.IsAny <VisibleDisplayByFilter>())).Returns(new List <VisibleDisplay>()); var controller = new VisibleController(data, Cloud, Logic) { CurrentUser = NonTenantUser }; var result = await controller.Filter(filter) as OkObjectResult; result.Should().NotBeNull(); result.Should().BeOfType <OkObjectResult>(); var check = result.Value as PagedResult <IEnumerable <VisibleDisplay> >; check.Data.Count().Should().Be(0); data.HasExecuted.Should().BeTrue(); data.Result.Verify(s => s.Execute(It.IsAny <VisibleDisplayByFilter>()), Times.Once()); }
public VisibleFilterEntry(VisibleFilter filter, string description) { if (filter == null) { throw new ArgumentNullException("filter"); } if (description == null) { throw new ArgumentNullException("description"); } Filter = filter; Description = description; }
public async Task VisibleDisplayByFilterDataTestVideo() { var filter = new VisibleFilter { VideoRestrict = true, Take = 10 }; using var store = GetDocumentStore(); using var session = store.OpenAsyncSession(); var query = new VisibleDisplayByFilter { Session = session, Filter = filter, CurrentUser = StandardUser }; await query.Execute(); query.Result.Should().NotBeNull(); query.Result.Count().Should().Be(0); }
public async Task VisibleDisplayByFilterDataTestImage() { var filter = new VisibleFilter { ImageRestrict = true, Take = 10 }; using var store = GetDocumentStore(); using var session = store.OpenAsyncSession(); var query = new VisibleDisplayByFilter { Session = session, Filter = filter, CurrentUser = StandardUser }; await query.Execute(); query.Result.Should().NotBeNull(); query.Result.Count().Should().Be(1); Assert.That(query.Result.First(), Is.DeepEqualTo(VisibleData.GetFirstDisplay())); }
public async Task VisibleDisplayByFilterDataTestAuthor() { var filter = new VisibleFilter { AuthorKeys = new List <string> { UserData.FirstId }, Take = 10 }; using var store = GetDocumentStore(); using var session = store.OpenAsyncSession(); var query = new VisibleDisplayByFilter { Session = session, Filter = filter, CurrentUser = StandardUser }; await query.Execute(); query.Result.Should().NotBeNull(); query.Result.Count().Should().Be(1); }
public void Test_VisibleFilter_Filters() { var visible = new Article { Visible = true, Id = 1 }; var invisible = new Article { Visible = false, Id = 2 }; var filter = new VisibleFilter(); Assert.IsTrue(filter.Matches(visible)); Assert.IsFalse(filter.Matches(invisible)); var filtered = filter.FilterArticles(visible, invisible); Assert.AreEqual(1, filtered.Length); Assert.AreEqual(1, filtered[0].Id); }
public async Task <IActionResult> Filter([FromBody] VisibleFilter viewModel) { if (!viewModel.TenantRestrict && !CurrentUser.Right.CanSuperuser) { viewModel.TenantRestrict = true; } if (!CurrentUser.Right.CanAdmin && !CurrentUser.Right.CanSuperuser) { viewModel.AuthorKeys.Add(CurrentUser.Id); } var query = new VisibleDisplayByFilter { Filter = viewModel, CurrentUser = CurrentUser }; await DataHandler.Execute(query); return(Ok(new PagedResult <IEnumerable <VisibleDisplay> > { Data = Secure(query.Result), Paging = query.Paging, Success = true })); }