public async Task Should_return_result_to_schema_and_contents_if_matching_and_permission_given() { var permission = Permissions.ForApp(Permissions.AppContentsRead, appId.Name, "schemaA2"); var ctx = ContextWithPermission(permission.Id); var schema1 = CreateSchema("schemaA1", false); var schema2 = CreateSchema("schemaA2", false); var schema3 = CreateSchema("schemaB2", false); A.CallTo(() => appProvider.GetSchemasAsync(appId.Id)) .Returns(new List <ISchemaEntity> { schema1, schema2, schema3 }); A.CallTo(() => urlGenerator.SchemaUI(appId, schema1.NamedId())) .Returns("schemaA1-url"); A.CallTo(() => urlGenerator.SchemaUI(appId, schema2.NamedId())) .Returns("schemaA2-url"); A.CallTo(() => urlGenerator.ContentsUI(appId, schema2.NamedId())) .Returns("schemaA2-contents-url"); var result = await sut.SearchAsync("schemaA", ctx); result.Should().BeEquivalentTo( new SearchResults() .Add("schemaA1 Schema", SearchResultType.Schema, "schemaA1-url") .Add("schemaA2 Schema", SearchResultType.Schema, "schemaA2-url") .Add("schemaA2 Contents", SearchResultType.Content, "schemaA2-contents-url", "schemaA2")); }
public async Task Should_always_return_contents_result_if_matching() { var ctx = ContextWithPermission(); A.CallTo(() => urlGenerator.ContentsUI(appId)) .Returns("contents-url"); var result = await sut.SearchAsync("content", ctx); result.Should().BeEquivalentTo( new SearchResults() .Add("Contents", SearchResultType.Content, "contents-url")); }
private void AddContentsUrl(SearchResults result, NamedId <DomainId> appId, ISchemaEntity schema, NamedId <DomainId> schemaId, string name) { if (schema.SchemaDef.Type == SchemaType.Singleton) { var contentUrl = urlGenerator.ContentUI(appId, schemaId, schemaId.Id); result.Add(T.Get("search.contentResult", new { name }), SearchResultType.Content, contentUrl, name); } else { var contentUrl = urlGenerator.ContentsUI(appId, schemaId); result.Add(T.Get("search.contentsResult", new { name }), SearchResultType.Content, contentUrl, name); } }
private void AddContentsUrl(SearchResults result, NamedId <Guid> appId, ISchemaEntity schema, NamedId <Guid> schemaId, string name) { if (schema.SchemaDef.IsSingleton) { var contentUrl = urlGenerator.ContentUI(appId, schemaId, schemaId.Id); result.Add($"{name} Content", SearchResultType.Content, contentUrl, name); } else { var contentUrl = urlGenerator.ContentsUI(appId, schemaId); result.Add($"{name} Contents", SearchResultType.Content, contentUrl, name); } }