public static IEnumerable <T> Map <V, T>(IEnumerable <V> vals, MapF <V, T> mapf) { foreach (V x in vals) { yield return(mapf(x)); } }
public void Multiple_Id_Properties_Returns_None_With_TooManyPropertiesWithAttributeMsg() { // Arrange var columns = MapF.GetColumns <FooTableWithMultipleIdAttributes, Foo>(new()).UnsafeUnwrap(); // Act var result = MapF.GetColumnWithAttribute <FooTableWithMultipleIdAttributes, IdAttribute>(columns); // Assert result.AssertNone().AssertType <TooManyPropertiesWithAttributeMsg <FooTableWithMultipleIdAttributes, IdAttribute> >(); }
public void Missing_Id_Property_Attribute_Returns_None_With_NoPropertyWithAttributeMsg() { // Arrange var columns = MapF.GetColumns <FooTableWithoutIdAttribute, Foo>(new()).UnsafeUnwrap(); // Act var result = MapF.GetColumnWithAttribute <FooTableWithoutIdAttribute, IdAttribute>(columns); // Assert result.AssertNone().AssertType <NoPropertyWithAttributeMsg <FooTableWithoutIdAttribute, IdAttribute> >(); }
public void Entity_Missing_Property_Returns_Invalid_With_Error() { // Arrange var e0 = $"The definition of entity '{typeof(Foo).FullName}' is missing property '{nameof(FooTableWithBar2.Bar2)}'."; // Act var(valid, errors) = MapF.ValidateTable <FooTableWithBar2, Foo>(); // Assert Assert.False(valid); Assert.Collection(errors, x => Assert.Equal(e0, x)); }
public void Table_Missing_Column_Returns_Invalid_With_Error() { // Arrange var e0 = $"The definition of table '{typeof(FooTableWithoutBar0).FullName}' is missing field '{nameof(Foo.Bar0)}'."; // Act var(valid, errors) = MapF.ValidateTable <FooTableWithoutBar0, Foo>(); // Assert Assert.False(valid); Assert.Collection(errors, x => Assert.Equal(e0, x)); }
public void No_Writeable_Columns_Returns_None_With_NoWriteableColumnsFoundMsg() { // Arrange var table = new FooUnwriteableTable(); var columns = MapF.GetColumns <FooUnwriteableTable, FooUnwriteable>(table).UnsafeUnwrap(); var map = new TableMap(table, columns, GetColumnNames_Tests.Get().column); // Act var result = map.GetWriteableColumnNamesAndAliases(); // Assert result.AssertNone().AssertType <NoWriteableColumnsFoundMsg>(); }
public void Returns_Writeable_Names_And_Aliases() { // Arrange var table = new FooTable(); var columns = MapF.GetColumns <FooTable, Foo>(table).UnsafeUnwrap(); var map = new TableMap(table, columns, GetColumnNames_Tests.Get().column); // Act var result = map.GetWriteableColumnNamesAndAliases(); // Assert var(names, aliases) = result.AssertSome(); Assert.Collection(names, x => Assert.Equal(table.Bar0, x), x => Assert.Equal(table.Bar1, x) ); Assert.Collection(aliases, x => Assert.Equal(nameof(table.Bar0), x), x => Assert.Equal(nameof(table.Bar1), x) ); }