public void FormatResult_Returns_InternalSearchResult() { // Arrange. const string ProcessDisplayName = "Test Process"; const int TotalRowCount = 123; const int PageNumber = 3; var items = new InfoList<IInfoClass> { new InfoItem { Field1 = "Value 1.1", Field2 = "Value 1.2", Field3 = "Value 1.3" }, new InfoItem { Field1 = "Value 2.1", Field2 = "Value 2.2", Field3 = "Value 2.3" } }; items.TotalRowCount = TotalRowCount; items.PageNumber = PageNumber; var filters = new List<Filter> { new Filter(), new Filter() }; var layouts = new List<LayoutMetadata> { new LayoutMetadata(), new LayoutMetadata() }; var relatedProcesses = new List<ProcessMetadata> { new ProcessMetadata(), new ProcessMetadata() }; var appliedFilter = new Filter(); var appliedLayout = new LayoutMetadata(); var searchResult = new SearchCommandResult { ProcessDisplayName = ProcessDisplayName, AppliedFilter = appliedFilter, FilterParametersRequired = false, AppliedLayout = appliedLayout, Items = items, ResultColumns = { CreateColumnMetadata("Field1"), CreateColumnMetadata("Field3") }, Filters = filters, Layouts = layouts, RelatedProcesses = relatedProcesses }; var formatter = new InternalSearchResultFormatter(_colorTranslator); // Act. var result = formatter.FormatResult(searchResult); // Assert. Assert.IsNotNull(result); Assert.AreEqual(ProcessDisplayName, result.ProcessDisplayName); Assert.AreSame(appliedFilter, result.AppliedFilter); Assert.IsFalse(result.FilterParametersRequired); Assert.AreSame(appliedLayout, result.AppliedLayout); Assert.AreEqual(PageNumber, result.CurrentPage); Assert.AreEqual(TotalRowCount, result.TotalRowCount); Assert.IsTrue(result.Filters.SequenceEqual(filters)); Assert.IsTrue(result.Layouts.SequenceEqual(layouts)); Assert.IsTrue(result.RelatedProcesses.SequenceEqual(relatedProcesses)); Assert.IsNotNull(result.Items); Assert.AreEqual(2, result.Items.Count); Assert.IsTrue(result.Items[0].Values.SequenceEqual(new[] { "Value 1.1", "Value 1.3" })); Assert.IsTrue(result.Items[1].Values.SequenceEqual(new[] { "Value 2.1", "Value 2.3" })); }
public void WhenColumnsCollectionIsEmpty_JsonFormatter_ShouldNotSerializeColumns() { // Arrange. var layout1 = new LayoutMetadata(); var layout2 = new LayoutMetadata { Columns = { new ColumnMetadata() } }; // Act / Assert. Assert.IsFalse(layout1.ShouldSerializeColumns()); Assert.IsTrue(layout2.ShouldSerializeColumns()); }
/// <summary> /// Creates layout metadata. /// </summary> /// <param name="layout"> /// The layout. /// </param> /// <param name="includeColumns"> /// True to include column metadata; otherwise, false. /// </param> /// <returns> /// The <see cref="LayoutMetadata"/>. /// </returns> public LayoutMetadata CreateLayoutMetadata(ILayoutInfo layout, bool includeColumns) { var layoutMetadata = new LayoutMetadata { Id = layout.Id, Name = layout.Name, IsAdminLayout = layout.IsAdminLayout ?? false }; if (includeColumns) { var processMetadata = ProcessMetadataRepository.GetProcessMetadata(layout.ProcessSystemName); foreach (var gridColumn in GetGridColumns(layout.LayoutDefinition)) { if (gridColumn.SystemName == Constants.DerivedProcessDisplayNameColumnName) { layoutMetadata.Columns.Add(CreateDerivedProcessDisplayNameColumnMetadata(gridColumn)); continue; } IFieldMetadata field; if (!processMetadata.TryGetField(gridColumn.SystemName, out field)) { continue; } layoutMetadata.Columns.Add(CreateColumnMetadata(gridColumn, field)); if (field.BackcolorField != null) { layoutMetadata.Columns.Add(CreateBackcolorColumnMetadata(field)); } if (field.ColumnType == ColumnTypes.File) { layoutMetadata.Columns.Add(CreateFileUrlColumnMetadata(field)); } } } return layoutMetadata; }
public void WhenItemsIsNull_FormatResult_ReturnsValidResult() { // Arrange. const string ProcessDisplayName = "Test Process"; var filters = new List<Filter> { new Filter(), new Filter() }; var layouts = new List<LayoutMetadata> { new LayoutMetadata(), new LayoutMetadata() }; var relatedProcesses = new List<ProcessMetadata> { new ProcessMetadata(), new ProcessMetadata() }; var appliedFilter = new Filter(); var appliedLayout = new LayoutMetadata(); var searchResult = new SearchCommandResult { ProcessDisplayName = ProcessDisplayName, AppliedFilter = appliedFilter, FilterParametersRequired = true, AppliedLayout = appliedLayout, Items = null, ResultColumns = { CreateColumnMetadata("Field1"), CreateColumnMetadata("Field3") }, Filters = filters, Layouts = layouts, RelatedProcesses = relatedProcesses }; var formatter = new PublicSearchResultFormatter(); // Act. var result = formatter.FormatResult(searchResult) as PublicSearchResult; // Assert. Assert.IsNotNull(result); Assert.AreEqual(ProcessDisplayName, result.ProcessDisplayName); Assert.AreSame(appliedFilter, result.AppliedFilter); Assert.IsTrue(result.FilterParametersRequired); Assert.AreSame(appliedLayout, result.AppliedLayout); Assert.AreEqual(-1, result.CurrentPage); Assert.AreEqual(0, result.TotalRowCount); Assert.IsTrue(result.Filters.SequenceEqual(filters)); Assert.IsTrue(result.Layouts.SequenceEqual(layouts)); Assert.IsTrue(result.RelatedProcesses.SequenceEqual(relatedProcesses)); Assert.IsNull(result.Items); }
public void GetProcessLayout_Returns_LayoutMetadata() { // Arrange. var layoutMetadata = new LayoutMetadata(); Mock.Arrange(() => _searchUtils.GetLayoutMetadata(LayoutId, true)).Returns(layoutMetadata); var controller = CreateProcessController(); // Act. var result = controller.GetProcessLayout(ProcessName, LayoutId) as OkNegotiatedContentResult<LayoutMetadata>; // Assert. Assert.IsNotNull(result); Assert.AreSame(layoutMetadata, result.Content); }
private SortList GetSortDescriptors(LayoutMetadata layoutDefinition) { if (ApplyLayoutSortDescriptors) { return new SortList( layoutDefinition.Columns.Where(c => c.SortDirection != SortDirection.None) .OrderBy(c => c.SortLevel) .Select(c => new SortDescriptor(c.SystemName, c.SortDirection))); } return new SortList(SortDescriptors); }
public void GetCurrentUserLayouts_Returns_CurrentUserLayouts() { // Arrange. var layoutInfo1 = CreateLayout(1, "Layout 1"); var layoutInfo2 = CreateLayout(1, "Layout 2"); var layoutInfo3 = CreateLayout(1, "Layout 3"); Mock.Arrange(() => _layoutManager.GetCurrentUserLayouts(ProcessName)) .Returns(() => new InfoList<ILayoutInfo> { layoutInfo1, layoutInfo2, layoutInfo3 }); var layoutMetadata1 = new LayoutMetadata { Id = 1 }; Mock.Arrange(() => _layoutMetadataFactory.CreateLayoutMetadata(layoutInfo1, false)).Returns(layoutMetadata1); var layoutMetadata2 = new LayoutMetadata { Id = 2 }; Mock.Arrange(() => _layoutMetadataFactory.CreateLayoutMetadata(layoutInfo2, false)).Returns(layoutMetadata2); var layoutMetadata3 = new LayoutMetadata { Id = 3 }; Mock.Arrange(() => _layoutMetadataFactory.CreateLayoutMetadata(layoutInfo3, false)).Returns(layoutMetadata3); var searchUtils = CreateSearchUtils(); // Act. var result = searchUtils.GetCurrentUserLayouts(ProcessName).ToArray(); // Assert. Assert.IsTrue(result.SequenceEqual(new[] { layoutMetadata1, layoutMetadata2, layoutMetadata3 })); }
public void GetLayoutMetadata_Returns_LayoutMetadata() { // Arrange. var layoutInfo = CreateLayout(LayoutId); var layoutMetadata = new LayoutMetadata(); Mock.Arrange(() => _layoutManager.GetLayoutInfo(LayoutId)).Returns(layoutInfo); Mock.Arrange(() => _layoutMetadataFactory.CreateLayoutMetadata(layoutInfo, true)).Returns(layoutMetadata); var searchUtils = CreateSearchUtils(); // Act. var result = searchUtils.GetLayoutMetadata(LayoutId, true); // Assert. Assert.AreSame(layoutMetadata, result); }