public Task ExportProperties_FilterPlainProperties() { //Arrange var pricelist = CreateSamplePricelist(); var dataQuery = new PricelistExportDataQuery() { IncludedProperties = new[] { new ExportedTypePropertyInfo() { FullName = "Id" }, } }; //Act dataQuery.FilterProperties(pricelist); //Assert Assert.Equal("1", pricelist.Id); Assert.Null(pricelist.Name); return(Task.CompletedTask); }
public Task ExportPrices_ExportNameTest() { var date = new DateTime(2020, 10, 20); var prices = new List <Price>() { new Price { Id = "P1", PricelistId = "1", List = 25, CreatedDate = date, Currency = "USD", }, new Price { Id = "P2", PricelistId = "1", List = 26, EndDate = date, ModifiedDate = date, Pricelist = new Pricelist() { Id = "1", Name = "Pricelist 1" }, }, }; var propertyInfos = new[] { new ExportedTypePropertyInfo() { FullName = nameof(Price.Id), DisplayName = $"{nameof(Price)}.{nameof(Price.Id)}", }, new ExportedTypePropertyInfo() { FullName = nameof(Price.PricelistId), DisplayName = $"{nameof(Price)}.{nameof(Price.PricelistId)}", }, }; var dataQuery = new PricelistExportDataQuery() { IncludedProperties = propertyInfos }; var exportedDataRequest = CreatExportDataRequest(dataQuery); //Act var filteredPricesString = SerializeAndRead(exportedDataRequest, prices); //Assets Assert.Equal("Price.Id,Price.PricelistId\r\nP1,1\r\nP2,1\r\n", filteredPricesString); return(Task.CompletedTask); }
public Task ExportPricelists_FilterNestedMembers() { var pricelists = CreatePricelists(); var propertyInfos = new[] { new ExportedTypePropertyInfo() { FullName = nameof(Pricelist.Id), DisplayName = nameof(Pricelist.Id), }, new ExportedTypePropertyInfo() { FullName = nameof(Pricelist.Name), DisplayName = nameof(Pricelist.Name), }, new ExportedTypePropertyInfo() { FullName = nameof(Pricelist.Currency), DisplayName = nameof(Pricelist.Currency), }, new ExportedTypePropertyInfo() { FullName = $"{nameof(Pricelist.ActiveAssignment)}.{nameof(PricelistAssignment.Id)}", DisplayName = $"{nameof(Pricelist.ActiveAssignment)}.{nameof(PricelistAssignment.Id)}", }, new ExportedTypePropertyInfo() { FullName = $"{nameof(Pricelist.ActiveAssignment)}.{nameof(PricelistAssignment.Name)}", DisplayName = $"{nameof(Pricelist.ActiveAssignment)}.{nameof(PricelistAssignment.Name)}", }, new ExportedTypePropertyInfo() { FullName = $"{nameof(Pricelist.ActiveAssignment)}.{nameof(PricelistAssignment.Priority)}", DisplayName = $"{nameof(Pricelist.ActiveAssignment)}.{nameof(PricelistAssignment.Priority)}", }, }; var dataQuery = new PricelistExportDataQuery() { IncludedProperties = propertyInfos }; var exportedDataRequest = CreatExportDataRequest(dataQuery); //Act var filteredPricesString = SerializeAndRead(exportedDataRequest, pricelists); //Assets Assert.Equal("Id,Name,Currency,ActiveAssignment.Id,ActiveAssignment.Name,ActiveAssignment.Priority\r\nPL1,Pricelist 1,USD,PA1_1,PA1_1 Name,1\r\nPL2,Pricelist 2,EUR,PA2_1,PA2_1 Name,11\r\n", filteredPricesString); return(Task.CompletedTask); }
public Task ExportPricelists_DoesNotWriteEnumerableProperties() { var pricelists = CreatePricelists(); var propertyInfos = new[] { new ExportedTypePropertyInfo() { FullName = nameof(Pricelist.Id), DisplayName = nameof(Pricelist.Id), }, new ExportedTypePropertyInfo() { FullName = nameof(Pricelist.Name), DisplayName = nameof(Pricelist.Name), }, new ExportedTypePropertyInfo() { FullName = nameof(Pricelist.Currency), DisplayName = nameof(Pricelist.Currency), }, new ExportedTypePropertyInfo() { FullName = $"{nameof(Pricelist.Prices)}.{nameof(Price.Id)}", DisplayName = $"{nameof(Pricelist.Prices)}.{nameof(Price.Id)}", }, new ExportedTypePropertyInfo() { FullName = $"{nameof(Pricelist.Prices)}.{nameof(Price.List)}", DisplayName = $"{nameof(Pricelist.Prices)}.{nameof(Price.List)}", }, }; var dataQuery = new PricelistExportDataQuery() { IncludedProperties = propertyInfos }; var exportedDataRequest = CreatExportDataRequest(dataQuery); //Act var filteredPricesString = SerializeAndRead(exportedDataRequest, pricelists); //Assets Assert.Equal("Id,Name,Currency\r\nPL1,Pricelist 1,USD\r\nPL2,Pricelist 2,EUR\r\n", filteredPricesString); return(Task.CompletedTask); }
public Task ExportProperties_FilterCollectionNestedProperties() { //Arrange var pricelist = CreateSamplePricelist(); var dataQuery = new PricelistExportDataQuery() { IncludedProperties = new[] { new ExportedTypePropertyInfo() { FullName = "Id" }, new ExportedTypePropertyInfo() { FullName = "Name" }, new ExportedTypePropertyInfo() { FullName = "Prices.List" }, new ExportedTypePropertyInfo() { FullName = "Assignments.Id" }, } }; //Act dataQuery.FilterProperties(pricelist); //Assert Assert.Equal("PL1", pricelist.Name); Assert.Equal("1", pricelist.Id); Assert.Equal(2, pricelist.Prices.Count); Assert.Equal(1, pricelist.Prices.Count(x => x.List == 25)); Assert.Equal(1, pricelist.Prices.Count(x => x.List == 26)); Assert.Equal(2, pricelist.Assignments.Count); Assert.Equal(1, pricelist.Assignments.Count(x => x.Id == "A1")); Assert.Equal(1, pricelist.Assignments.Count(x => x.Id == "A2")); return(Task.CompletedTask); }
public Task ExportProperties_ClearCircleReferences() { //Arrange var pricelist = CreateSamplePricelist(); var dataQuery = new PricelistExportDataQuery() { IncludedProperties = new[] { new ExportedTypePropertyInfo() { FullName = "Name" }, new ExportedTypePropertyInfo() { FullName = "Prices.Id" }, new ExportedTypePropertyInfo() { FullName = "Id" }, new ExportedTypePropertyInfo() { FullName = "Assignments.Id" }, }, }; //Act dataQuery.FilterProperties(pricelist); //Assert Assert.Null(pricelist.Prices.First().Pricelist); Assert.Null(pricelist.Assignments.First().Pricelist); return(Task.CompletedTask); }
public Task ExportPricelists_UseCustomMap() { var pricelists = CreatePricelists(); var propertyInfos = new[] { new ExportedTypePropertyInfo() { FullName = nameof(Pricelist.Id), DisplayName = nameof(Pricelist.Id), }, new ExportedTypePropertyInfo() { FullName = nameof(Pricelist.Name), DisplayName = nameof(Pricelist.Name), }, new ExportedTypePropertyInfo() { FullName = nameof(Pricelist.Currency), DisplayName = nameof(Pricelist.Name), }, new ExportedTypePropertyInfo() { FullName = $"{nameof(Pricelist.ActiveAssignment)}.{nameof(PricelistAssignment.Id)}", DisplayName = $"{nameof(Pricelist.ActiveAssignment)}.{nameof(PricelistAssignment.Id)}", }, new ExportedTypePropertyInfo() { FullName = $"{nameof(Pricelist.ActiveAssignment)}.{nameof(PricelistAssignment.Name)}", DisplayName = $"{nameof(Pricelist.ActiveAssignment)}.{nameof(PricelistAssignment.Name)}", }, new ExportedTypePropertyInfo() { FullName = $"{nameof(Pricelist.ActiveAssignment)}.{nameof(PricelistAssignment.Priority)}", DisplayName = $"{nameof(Pricelist.ActiveAssignment)}.{nameof(PricelistAssignment.Priority)}", }, new ExportedTypePropertyInfo() { FullName = $"{nameof(Pricelist.Prices)}.{nameof(Price.Id)}", DisplayName = $"{nameof(Pricelist.Prices)}.{nameof(Price.Id)}", }, new ExportedTypePropertyInfo() { FullName = $"{nameof(Pricelist.Prices)}.{nameof(Price.List)}", DisplayName = $"{nameof(Pricelist.Prices)}.{nameof(Price.List)}", }, }; var dataQuery = new PricelistExportDataQuery() { IncludedProperties = propertyInfos }; var configuration = new Configuration(cultureInfo: CultureInfo.InvariantCulture); configuration.RegisterClassMap <PricelistTestMapping>(); var exportDataRequest = CreatExportDataRequest(dataQuery, new CsvProviderConfiguration() { Configuration = configuration }); //Act var filteredPricesString = SerializeAndRead(exportDataRequest, pricelists); //Assets Assert.Equal("Id,Name,Currency,ActiveAssignment.Id,ActiveAssignment.Name\r\nPL1,Pricelist 1,USD,PA1_1,PA1_1 Name\r\nPL2,Pricelist 2,EUR,PA2_1,PA2_1 Name\r\n", filteredPricesString); return(Task.CompletedTask); }
public Task ExportPricelistAssignments_FilterPlainMembers() { var date = new DateTime(2020, 10, 20); var assignments = new List <PricelistAssignment>() { new PricelistAssignment { Id = "PA1", PricelistId = "1", Description = "PA1 Description", Priority = 1, Pricelist = new Pricelist() { Name = "Pricelist1" }, }, new PricelistAssignment { Id = "PA2", PricelistId = "2", EndDate = date, Description = "PA2 Description", ConditionExpression = "<expression/>", }, }; var propertyInfos = new[] { new ExportedTypePropertyInfo() { FullName = nameof(PricelistAssignment.Id), DisplayName = nameof(PricelistAssignment.Id), }, new ExportedTypePropertyInfo() { FullName = nameof(PricelistAssignment.Description), DisplayName = nameof(PricelistAssignment.Description), }, new ExportedTypePropertyInfo() { FullName = nameof(PricelistAssignment.EndDate), DisplayName = nameof(PricelistAssignment.EndDate), }, new ExportedTypePropertyInfo() { FullName = nameof(PricelistAssignment.Priority), DisplayName = nameof(PricelistAssignment.Priority), }, new ExportedTypePropertyInfo() { FullName = nameof(PricelistAssignment.ConditionExpression), DisplayName = nameof(PricelistAssignment.ConditionExpression), }, }; var dataQuery = new PricelistExportDataQuery() { IncludedProperties = propertyInfos }; var exportedDataRequest = CreatExportDataRequest(dataQuery); //Act var filteredPricesString = SerializeAndRead(exportedDataRequest, assignments); //Assets Assert.Equal("Id,Description,EndDate,Priority,ConditionExpression\r\nPA1,PA1 Description,,1,\r\nPA2,PA2 Description,10/20/2020 00:00:00,0,<expression/>\r\n", filteredPricesString); return(Task.CompletedTask); }