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);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }
Example #6
0
        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);
        }