public void SerializeFromQueryTree_FromStream_AndReserialized_WithPartner() { var regions = new[] { "en-US", "en-GB", "es-MX", "es-ES", "de" }; // Given var partnerFixture = new Faker <Dto>() .RuleFor(x => x.id, f => f.IndexGlobal) .RuleFor(x => x.Name, f => f.Person.FirstName) .RuleFor(x => x.region_code, f => f.PickRandom(regions)) .RuleFor(x => x.partner, f => null) .RuleFor(x => x.favorite, f => null) .RuleFor(x => x.children, f => new List <DtoChild>()); var fixture = new Faker <Dto>() .RuleFor(x => x.id, f => f.IndexGlobal) .RuleFor(x => x.Name, f => f.Person.FirstName) .RuleFor(x => x.region_code, f => f.PickRandom(regions)) .RuleFor(x => x.partner, f => partnerFixture.Generate()) .RuleFor(x => x.favorite, f => null) .RuleFor(x => x.children, f => new List <DtoChild>()); var query = fixture.Generate(10).ToList(); query.AddRange(query.Select(x => x.partner).ToList()); var nodata = new NoDataBuilder <Dto>(new Parameters("partner"), DefaultSettingsForType <Dto> .SettingsForType); var rawText = new StreamReader(nodata.Load(query.AsQueryable()).Stream()).ReadToEnd(); // When var result = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Dto> >(rawText); // Then result.Should().BeEquivalentTo(query); }
public void EfCoreSetup_Projection_WithNonsenseMaps_ExpandA_Only() { var context = GetDataContext; var mapper = GetMapper; var mapConfig = mapper.ConfigurationProvider; context.Thing.Add(new NonsenseThingOneEntity { bId = 1, cId = 2, B = new NonsenseThingChildEntity { Id = 1 }, C = new NonsenseThingChildEntity { Id = 2 }, }); context.SaveChanges(); var thingSource = context.Thing.AsNoTracking(); var nodata = new NoDataBuilder <NonsenseThingOneDto>("A", null, null); var dest = nodata.Projection <NonsenseThingOneEntity>(thingSource, mapConfig).BuildQueryable().ToList(); dest.Should().ContainSingle(); var dto = dest.Single(); dto.Should().NotBeNull(); Assert.NotNull(dto.A); Assert.Null(dto.B); dto.aId.Should().Be(1); dto.bId.Should().Be(2); dto.A.Id.Should().Be(1); }
public void EfficiencyTests_NPlusOneTests_Project_With_Json_ExactlyOneParentEnumCalled() { var queryable = ParentCollection().AsQueryable(); var nodata = new NoDataBuilder <Dto>(null, null, null); var json = nodata.Projection(queryable, Config).AsJson(); parentCalls.Should().Be(1); }
public void EfficiencyTests_NPlusOneTests_SetupIsValid_Queryable_BuilderApply_CalledOnce() { var queryable = ParentCollection().AsQueryable(); var nodata = new NoDataBuilder <Person>(null, null, null); var lst = nodata.Load(queryable).BuildQueryable().ToList(); lst.Should().NotBeNullOrEmpty(); parentCalls.Should().Be(1); }
public void EfficiencyTests_NPlusOneTests_SetupIsValid_Json() { var queryable = ParentCollection().AsQueryable(); var nodata = new NoDataBuilder <Person>(null, null, null); var json = nodata.Load(queryable).AsJson(); json.Should().NotBeNullOrEmpty(); parentCalls.Should().Be(1); }
public void EfficiencyTests_NPlusOneTests_Projection_ExactlyOneParentEnumCalled() { var queryable = ParentCollection().AsQueryable(); var nodata = new NoDataBuilder <Dto>(null, null, null); var projection = nodata.Projection(queryable, Config).BuildQueryable(); var lst = projection.ToList(); lst.Should().NotBeNullOrEmpty(); lst.Should().ContainSingle(); parentCalls.Should().Be(1); }
public void SerializeFromQueryTree_FromStream_ReturnsText() { // Given var query = FlatDtoEnumerable().ToList(); var nodata = new NoDataBuilder <Dto>(new Parameters(), DefaultSettingsForType <Dto> .SettingsForType); // When var rawText = new StreamReader(nodata.Load(query.AsQueryable()).Stream()).ReadToEnd(); // Then rawText.Should().NotBeNullOrWhiteSpace(); }
public void SerializeFromQueryTree_FromStream_AndReserialized_SamePrimitiveTypes() { // Given var query = FlatDtoEnumerable().ToList(); var nodata = new NoDataBuilder <Dto>(new Parameters(), DefaultSettingsForType <Dto> .SettingsForType); var rawText = new StreamReader(nodata.Load(query.AsQueryable()).Stream()).ReadToEnd(); // When var result = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Dto> >(rawText); // Then result.Should().BeEquivalentTo(query); }