using System; using System.Collections.Generic; using System.Linq; using System.Text; using LCU.API.Collections.RepoApi.Models.Reporting; using LCU.Shared.Collections.RepoApiLib.Formatting; using LCU.Shared.Collections.RepoApiLib.Models.Reporting.Responses; using Xunit; namespace LCU.API.Collections.RepoApiTests { internal class DummyClass { public int RepoId { get; set; } public string SomeString { get; set; } } public class DataTableFormattingTest { [Fact] public void CreateDataTable_Ok() { // Arrange var dummyData = new List() { new DummyClass() { RepoId = 49, SomeString = "String" }, new DummyClass() { RepoId = 51 } }; // Act var dataTable = DataTableFormatting.CreateDataTable( dummyData, (entry) => entry.RepoId, (entry) => new ReportHeaderCellMap() { Header = "First Header", Cell = new ReportCell() { Display = entry?.SomeString, Value = 123 } }, (entry) => new ReportHeaderCellMap() { Header = "2nd Header", Cell = new ReportCell() { Display = "Whatever I want", Value = true } }); // Assert Assert.NotNull(dataTable); Assert.Equal(2, dataTable.Headers.Length); Assert.Equal("First Header", dataTable.Headers[0]); Assert.Equal("2nd Header", dataTable.Headers[1]); Assert.Equal(2, dataTable.Rows.Count()); var firstRow = dataTable.Rows.ElementAt(0); Assert.Equal(49, firstRow.RepoId); Assert.Equal("String", firstRow.Cells[0].Display); Assert.Equal(123, firstRow.Cells[0].Value); Assert.Equal("Whatever I want", firstRow.Cells[1].Display); Assert.Equal(true, firstRow.Cells[1].Value); var secondRow = dataTable.Rows.ElementAt(1); Assert.Equal(51, secondRow.RepoId); Assert.Null(secondRow.Cells[0].Display); Assert.Equal(123, secondRow.Cells[0].Value); Assert.Equal("Whatever I want", secondRow.Cells[1].Display); Assert.Equal(true, secondRow.Cells[1].Value); } } }