Beispiel #1
0
        public void RunTestCode(string basepath)
        {
            string      xml = basepath + "test/testxml/community_answer_library.xml";
            XmlDocument doc = new XmlDocument();

            doc.Load(xml);
            XmlNode       root = doc.LastChild;
            AnswerLibrary data = new AnswerLibrary();

            if (!data.Parse(root))
            {
                Console.WriteLine("解析{0}失败", xml);
                return;
            }

            //写入bytes文件
            byte[]     b  = GenericBuilder.GenericsEncode(data);
            FileStream fs = File.Create("community_answer_library.bytes");

            fs.Write(b, 0, b.Length);
            fs.Close();

            //dump内容
            AnswerLibrary d = GenericParser.GenericsDecode <AnswerLibrary>(b);
            string        s = GenericDump.Dump(d);

            fs = File.Create("community_answer_library.txt");
            StreamWriter sw = new StreamWriter(fs);

            sw.WriteLine(s);
            sw.Close();
            fs.Close();
        }
Beispiel #2
0
        public void RunTestCode(string basepath)
        {
            string      xml = basepath + "test/testxml/home_config.xml";
            XmlDocument doc = new XmlDocument();

            doc.Load(xml);
            XmlNode    root = doc.LastChild;
            HomeConfig data = new HomeConfig();

            if (!data.Parse(root))
            {
                Console.WriteLine("解析{0}失败", xml);
                return;
            }

            //写入bytes文件
            byte[]     b  = GenericBuilder.GenericsEncode(data);
            FileStream fs = File.Create("home_config.bytes");

            fs.Write(b, 0, b.Length);
            fs.Close();

            //dump内容
            HomeConfig d = GenericParser.GenericsDecode <HomeConfig>(b);
            string     s = GenericDump.Dump(d);

            fs = File.Create("home_config.txt");
            StreamWriter sw = new StreamWriter(fs);

            sw.WriteLine(s);
            sw.Close();
            fs.Close();
        }
        /// <summary>
        /// 为此函数构建泛型
        /// <para>构造函数无泛型参数</para>
        /// </summary>
        /// <param name="builder">泛型构建器</param>
        /// <returns></returns>
        public virtual TBuilder WithGeneric(Func <GenericTemplate <GenericBuilder>, GenericTemplate <GenericBuilder> > builder)
        {
            GenericBuilder generic = new GenericBuilder();

            _member.GenericParams = builder.Invoke(generic).GetBuilder();
            return(_TBuilder);
        }
        /// <summary>
        /// 为此函数构建泛型
        /// <para>构造函数无泛型参数</para>
        /// </summary>
        /// <param name="paramList">泛型参数</param>
        /// <param name="constraintList">泛型参数约束</param>
        /// <param name="builder">构建器</param>
        /// <returns></returns>
        public virtual TBuilder WithGeneric(string paramList, string constraintList, out GenericBuilder builder)
        {
            var generic = GenericBuilder.WithFromCode(paramList, constraintList);

            _member.GenericParams = generic;
            builder = generic;
            return(_TBuilder);
        }
Beispiel #5
0
        public void It_ShouldNotAddPropertyToBuilderPatches_WhenPropIsInvalid()
        {
            var sut = new GenericBuilder <TestHelperClass>(new TestHelperClass());

            sut.WithValue(x => x.Prop2 == 54, false);

            ((IGenericBuilder <TestHelperClass>)sut).Patches.Should().BeEmpty();
        }
        /// <summary>
        /// 为此函数构建泛型
        /// <para>构造函数无泛型参数</para>
        /// </summary>
        /// <param name="builder">泛型构建器</param>
        /// <returns></returns>
        public virtual TBuilder WithGeneric(Action <GenericTemplate <GenericBuilder> > builder)
        {
            GenericBuilder generic = new GenericBuilder();

            builder.Invoke(generic);
            _member.GenericParams = generic;
            return(_TBuilder);
        }
Beispiel #7
0
        public void It_ShouldAddPropertyToBuilderPatches()
        {
            var expected = new Operation <TestHelperClass>("replace", "/Prop1", null, "new value");

            var sut = new GenericBuilder <TestHelperClass>(new TestHelperClass());

            sut.WithValue(x => x.Prop1, "new value");

            ((IGenericBuilder <TestHelperClass>)sut).Patches.Should().BeEquivalentTo(expected);
        }
Beispiel #8
0
        public void It_ShouldBuildAfterAddingValuesAndReset()
        {
            var expected = new TestHelperClass {
                Prop2 = 54
            };

            var sut = new GenericBuilder <TestHelperClass>(new TestHelperClass {
                Prop2 = 54
            });

            sut.WithValue(x => x.Prop1, "some value")
            .WithValue(x => x.Prop3, true)
            .Reset();

            sut.Build().Should().BeEquivalentTo(expected);
        }
        public void It_ShouldCreateBuilderOutOfFuncOfModel()
        {
            Func <TestHelperClass> myClassGetter = () => new TestHelperClass
            {
                Prop1 = "some value",
                Prop2 = 54,
                Prop3 = true
            };

            var expected = new TestHelperClass
            {
                Prop1 = "some value",
                Prop2 = 54,
                Prop3 = true
            };

            GenericBuilder <TestHelperClass> result = myClassGetter.AsBuilder();

            result.Build().Should().BeEquivalentTo(expected);
        }
Beispiel #10
0
        public static GenericBuilder <T> WithValue <T, TValue>(this GenericBuilder <T> builder,
                                                               Expression <Func <T, TValue> > property,
                                                               TValue value)
            where T : class
        {
            if (!IsValidProperty(property))
            {
                return(builder);
            }

            var doc = new JsonPatchDocument <T>();

            doc.Replace(property, value);

            (builder as IGenericBuilder <T>)
            .Patches
            .AddRange(doc.Operations);

            return(builder);
        }
        public async Task It_ShouldCreateBuilderOutOfAsyncModel()
        {
            Task <TestHelperClass> myClassGetter = Task.FromResult(
                new TestHelperClass
            {
                Prop1 = "some value",
                Prop2 = 54,
                Prop3 = true
            }
                );

            var expected = new TestHelperClass
            {
                Prop1 = "some value",
                Prop2 = 54,
                Prop3 = true
            };

            GenericBuilder <TestHelperClass> result = await myClassGetter.AsBuilderAsync();

            result.Build().Should().BeEquivalentTo(expected);
        }
 /// <summary>
 /// 为此函数构建泛型
 /// <para>构造函数无泛型参数</para>
 /// </summary>
 /// <param name="paramList">泛型参数</param>
 /// <param name="constraintList">泛型参数约束</param>
 /// <returns></returns>
 public virtual TBuilder WithGeneric(string paramList, string constraintList)
 {
     _member.GenericParams = GenericBuilder.WithFromCode(paramList, constraintList);
     return(_TBuilder);
 }
 /// <summary>
 /// 为此函数构建泛型
 /// <para>构造函数无泛型参数</para>
 /// </summary>
 /// <param name="builder">构建器</param>
 /// <returns></returns>
 public virtual TBuilder WithGeneric(GenericBuilder builder)
 {
     _member.GenericParams = builder;
     return(_TBuilder);
 }