コード例 #1
0
        public void Add_4()
        {
            var t1 = new InlineTag(Tag.S, "id", "rid", "name", "ctype", "display", "code");
            var t2 = new InlineTag(Tag.S, "ID", "RID", "NAME", "CTYPE", "DISPLAY", "CODE");

            var s = new InlineBuilder();

            s.Is();
            s.Add("");
            s.Is();
            s.Add("abc");
            s.Is("abc");
            s.Add(Ins);
            s.Add("def");
            s.Is("abc", Ins_("def"));
            s.Add("");
            s.Is("abc", Ins_("def"));
            s.Add(t1);
            s.Is("abc", Ins_("def"), Ins_(t1));
            s.Add("");
            s.Is("abc", Ins_("def"), Ins_(t1));
            s.Add(t2);
            s.Is("abc", Ins_("def"), Ins_(t1), Ins_(t2));
            s.Add("");
            s.Is("abc", Ins_("def"), Ins_(t1), Ins_(t2));
            s.Add(Del);
            s.Is("abc", Ins_("def"), Ins_(t1), Ins_(t2));
            s.Add("xyz");
            s.Is("abc", Ins_("def"), Ins_(t1), Ins_(t2), Del_("xyz"));
        }
コード例 #2
0
        public void Add_1()
        {
            var t1 = new InlineTag(Tag.S, "id", "rid", "name", "ctype", "display", "code");
            var t2 = new InlineTag(Tag.S, "ID", "RID", "NAME", "CTYPE", "DISPLAY", "CODE");

            var s = new InlineBuilder();

            s.Is();
            s.Add("");
            s.Is();
            s.Add("abc");
            s.Is("abc");
            s.Add("def");
            s.Is("abcdef");
            s.Add("");
            s.Is("abcdef");
            s.Add(t1);
            s.Is("abcdef", t1);
            s.Add("");
            s.Is("abcdef", t1);
            s.Add(t2);
            s.Is("abcdef", t1, t2);
            s.Add("");
            s.Is("abcdef", t1, t2);
            s.Add("xyz");
            s.Is("abcdef", t1, t2, "xyz");
        }
コード例 #3
0
        public void Ctors()
        {
            var a = new InlineBuilder();

            a.Is();
            a.IsEmpty.IsTrue();
        }
コード例 #4
0
        public void GetHashCode_1()
        {
            var t1 = new InlineTag(Tag.S, "*", "*", "t", null, null, null);
            var t2 = new InlineTag(Tag.S, "*", "*", "t", null, null, null);

            var s1 = new InlineBuilder();
            var s2 = new InlineBuilder();

            s1.ToInlineString().GetHashCode().Is(s2.ToInlineString().GetHashCode());

            s1.Append("abc");
            s1.ToInlineString().GetHashCode().IsNot(s2.ToInlineString().GetHashCode()); // very likely but not guaranteed
            s2.Append("abc");
            s1.ToInlineString().GetHashCode().Is(s2.ToInlineString().GetHashCode());
            s1.Append("def");
            s1.ToInlineString().GetHashCode().IsNot(s2.ToInlineString().GetHashCode()); // very likely but not guaranteed
            s2.Append("def");
            s1.ToInlineString().GetHashCode().Is(s2.ToInlineString().GetHashCode());
            s1.Append(t1);
            s1.ToInlineString().GetHashCode().IsNot(s2.ToInlineString().GetHashCode()); // very likely but not guaranteed
            s2.Append(t2);
            s1.ToInlineString().GetHashCode().Is(s2.ToInlineString().GetHashCode());

            s1.Append("xxx");
            s1.ToInlineString().GetHashCode().IsNot(s2.ToInlineString().GetHashCode()); // very likely but not guaranteed
            s2.Append("yyy");
            s1.ToInlineString().GetHashCode().IsNot(s2.ToInlineString().GetHashCode()); // very likely but not guaranteed
        }
コード例 #5
0
        public void Append_1()
        {
            var t1 = new InlineTag(Tag.S, "*", "*", "t1", null, null, null);
            var t2 = new InlineTag(Tag.S, "*", "*", "t2", null, null, null);

            var s = new InlineBuilder();

            s.Is();
            s.Append("");
            s.Is();
            s.Append("abc");
            s.Is("abc");
            s.Append("def");
            s.Is(new InlineText("abcdef"));
            s.Append("");
            s.Is(new InlineText("abcdef"));
            s.Append(t1);
            s.Is(new InlineText("abcdef"), t1);
            s.Append(t2);
            s.Is(new InlineText("abcdef"), t1, t2);
            s.Append("");
            s.Is(new InlineText("abcdef"), t1, t2);
            s.Append("xyz");
            s.Is(new InlineText("abcdef"), t1, t2, new InlineText("xyz"));
        }
コード例 #6
0
        public void Equals_1()
        {
            var t1 = new InlineTag(Tag.S, "*", "*", "t", null, null, null);
            var t2 = new InlineTag(Tag.S, "*", "*", "t", null, null, null);
            var s1 = new InlineBuilder();
            var s2 = new InlineBuilder();

            s1.ToInlineString().Equals(s2.ToInlineString()).Is(true);
            s2.ToInlineString().Equals(s1.ToInlineString()).Is(true);
            s1.Append("abc");
            s1.ToInlineString().Equals(s2.ToInlineString()).Is(false);
            s2.ToInlineString().Equals(s1.ToInlineString()).Is(false);
            s2.Append("abc");
            s1.ToInlineString().Equals(s2.ToInlineString()).Is(true);
            s2.ToInlineString().Equals(s1.ToInlineString()).Is(true);
            s1.Append("def");
            s1.ToInlineString().Equals(s2.ToInlineString()).Is(false);
            s2.ToInlineString().Equals(s1.ToInlineString()).Is(false);
            s2.Append("def");
            s1.ToInlineString().Equals(s2.ToInlineString()).Is(true);
            s2.ToInlineString().Equals(s1.ToInlineString()).Is(true);
            s1.Append(t1);
            s1.ToInlineString().Equals(s2.ToInlineString()).Is(false);
            s2.ToInlineString().Equals(s1.ToInlineString()).Is(false);
            s2.Append(t2);
            s1.ToInlineString().Equals(s2.ToInlineString()).Is(true);
            s2.ToInlineString().Equals(s1.ToInlineString()).Is(true);

            s1.Append("xxx");
            s2.Append("yyy");
            s1.ToInlineString().Equals(s2.ToInlineString()).Is(false);
            s2.ToInlineString().Equals(s1.ToInlineString()).Is(false);
        }
コード例 #7
0
        public void Equals_2()
        {
            var s1 = new InlineBuilder();
            var s2 = new InlineBuilder();

            s1.Append("abc").Append("def");
            s2.Append("abcdef");
            s1.ToInlineString().Equals(s2.ToInlineString()).Is(true);
            s2.ToInlineString().Equals(s1.ToInlineString()).Is(true);
        }
コード例 #8
0
        public void Equals_3()
        {
            var t  = new InlineTag(Tag.S, "*", "*", "t", null, null, null);
            var s1 = new InlineBuilder();
            var s2 = new InlineBuilder();

            s1.Append("abc");
            s2.Append(t);
            s1.ToInlineString().Equals(s2.ToInlineString()).Is(false);
            s2.ToInlineString().Equals(s1.ToInlineString()).Is(false);
        }
コード例 #9
0
        public void Equals_4()
        {
            var t1 = new InlineTag(Tag.S, "*", "*", "t", null, "{t}", null);
            var t2 = new InlineTag(Tag.S, "*", "*", "t", null, "{T}", null);

            var s1 = new InlineBuilder();
            var s2 = new InlineBuilder();

            s1.Append(t1);
            s2.Append(t2);
            s1.ToInlineString().Equals(s2.ToInlineString()).IsFalse();
            s2.ToInlineString().Equals(s1.ToInlineString()).IsFalse();
        }
コード例 #10
0
        public void Reset_1()
        {
            var b = new InlineBuilder();

            b.IsEmpty.IsTrue();
            b.Add("abc");
            b.IsEmpty.IsFalse();
            b.Clear();
            b.IsEmpty.IsTrue();
            b.Add("def");
            b.IsEmpty.IsFalse();
            b.Clear(true);
            b.IsEmpty.IsTrue();
        }
コード例 #11
0
 public void Add_Tag_Exception()
 {
     {
         var b = new InlineBuilder();
         AssertEx.Catch <ArgumentNullException>(() => b.Add(Tag.S, null, "rid", "name"));
     }
     {
         var b = new InlineBuilder();
         AssertEx.Catch <ArgumentNullException>(() => b.Add(Tag.S, "id", null, "name"));
     }
     {
         var b = new InlineBuilder();
         AssertEx.Catch <ArgumentNullException>(() => b.Add(Tag.S, "id", "rid", null));
     }
 }
コード例 #12
0
        public void GetHashCode_4()
        {
            // InlineTag.GetHashCode doesn't see Display string anymore,
            // Hence InlineString.GetHashCode, either.

            var t1 = new InlineTag(Tag.S, "*", "", "t", null, "{t}", null);
            var t2 = new InlineTag(Tag.S, "*", "", "t", null, "{T}", null);

            var s1 = new InlineBuilder();
            var s2 = new InlineBuilder();

            s1.Append(t1);
            s2.Append(t2);
            s1.ToInlineString().GetHashCode().Is(s2.ToInlineString().GetHashCode());
        }
コード例 #13
0
        public void Reset_2()
        {
            var b = new InlineBuilder();

            b.Property = Ins;
            b.Property.Is(Ins);
            b.Clear();
            b.Property.Is(None);
            b.Property = Del;
            b.Property.Is(Del);
            b.Clear(true);
            b.Property.Is(Del);
            b.Clear(false);
            b.Property.Is(None);
        }
コード例 #14
0
        public void IsEmpty_2()
        {
            var s = new InlineBuilder();

            s.IsEmpty.IsTrue();
            s.Count().Is(0);
            s.Append(new InlineTag(Tag.S, "*", "*", "t1", null, null, null));
            s.IsEmpty.IsFalse();
            s.Count().Is(1);
            s.Append("");
            s.IsEmpty.IsFalse();
            s.Count().Is(1);
            s.Append("a");
            s.IsEmpty.IsFalse();
            s.Count().Is(2);
        }
コード例 #15
0
        public void Add_2()
        {
            var s = new InlineBuilder();

            s.Is();
            s.Add(Ins);
            s.Is();
            s.Add("abc");
            s.Is(Ins_("abc"));
            s.Add(Emp);
            s.Is(Ins_("abc"));
            s.Add(Del);
            s.Is(Ins_("abc"));
            s.Add("def");
            s.Is(Ins_("abc"), Del_("def"));
        }
コード例 #16
0
        public void Property_2()
        {
            var b = new InlineBuilder();

            b.Property.Is(None);
            b.Add("abc");
            b.Property.Is(None);
            b.Property = Ins;
            b.Property.Is(Ins);
            b.Add("def");
            b.Property.Is(Ins);
            b.Property = Del;
            b.Property.Is(Del);
            b.Add("ghi");
            b.Property.Is(Del);
            b.Is("abc", Ins_("def"), Del_("ghi"));
        }
コード例 #17
0
        public void Add_Tag_1()
        {
            var t1 = new InlineTag(Tag.S, "id", "rid", "name", "ctype", "display", "code");
            var t2 = new InlineTag(Tag.S, "ID", "RID", "NAME", "CTYPE", "DISPLAY", "CODE");

            var s = new InlineBuilder();

            s.Is();
            s.Add(Tag.S, "id", "rid", "name", "ctype", "display", "code");
            s.Add(Ins);
            s.Add(Tag.S, "id", "rid", "name", "ctype", "display", "code");
            s.Add(Del);
            s.Add(Tag.S, "ID", "RID", "NAME", "CTYPE", "DISPLAY", "CODE");
            s.Add(Emp);
            s.Add(Tag.S, "ID", "RID", "NAME", "CTYPE", "DISPLAY", "CODE");
            s.Is(t1, Ins_(t1), Del_(t2), Emp_(t2));
        }
コード例 #18
0
        public void Property_3()
        {
            var b = new InlineBuilder();

            b.Property = Ins;
            b.Add("abc");
            b.Add("def");
            b.Property = Del;
            b.Add("ghi");
            b.Property = Del;
            b.Add("jkl");
            b.Property = Emp;
            b.Add("mno");
            b.Property = Ins;
            b.Property = Emp;
            b.Add("pqr");
            b.Is(Ins_("abcdef"), Del_("ghijkl"), Emp_("mnopqr"));
        }
コード例 #19
0
        public void IsEmpty_1()
        {
            var s = new InlineBuilder();

            s.IsEmpty.IsTrue();
            s.Count().Is(0);
            s.Append("");
            s.IsEmpty.IsTrue();
            s.Count().Is(0);
            s.Append("a");
            s.IsEmpty.IsFalse();
            s.Count().Is(1);
            s.Append("");
            s.IsEmpty.IsFalse();
            s.Count().Is(1);
            s.Append("a");
            s.IsEmpty.IsFalse();
            s.Count().Is(1);
        }
コード例 #20
0
        public void Append_2()
        {
            var t = new InlineTag(Tag.S, "*", "*", "t", null, null, null);
            var s = new InlineBuilder();

            AssertEx.Catch <ArgumentNullException>(() => s.Append((string)null));
            AssertEx.Catch <ArgumentNullException>(() => s.Append((InlineTag)null));
            AssertEx.Is(s);

            s.Append(t);
            AssertEx.Catch <ArgumentNullException>(() => s.Append((string)null));
            AssertEx.Catch <ArgumentNullException>(() => s.Append((InlineTag)null));
            s.Is(t);

            s.Append("abc");
            AssertEx.Catch <ArgumentNullException>(() => s.Append((string)null));
            AssertEx.Catch <ArgumentNullException>(() => s.Append((InlineTag)null));
            s.Is(t, new InlineText("abc"));
        }
コード例 #21
0
        /// <summary>
        /// Parse an XML fragment representing a source/target content into <see cref="InlineString"/>.
        /// </summary>
        /// <param name="text"></param>
        /// <returns></returns>
        protected static InlineString GetInlineString(string text)
        {
            var inline = new InlineBuilder();

            foreach (var elem in XElement.Parse(text).Elements("Elements").Elements())
            {
                switch (elem.Name.LocalName)
                {
                case "Text":
                    inline.Add((string)elem.Element("Value") ?? "");
                    break;

                case "Tag":
                    inline.Add(GetInlineTag(elem));
                    break;

                default:
                    // Just in case...
                    inline.Add(new InlineTag(Tag.S, "*", "", elem.Name.LocalName, null, null, elem.ToString()));
                    break;
                }
            }
            return(inline.ToInlineString());
        }
コード例 #22
0
 public static void Is(this InlineBuilder builder, params Rwp[] items)
 {
     builder.AsEnumerable().Is(items.Select(Rwp.Unbox));
 }
コード例 #23
0
 public void ToString_1()
 {
     var F = InlineToString.Flat;
     var N = InlineToString.Normal;
     var L = InlineToString.Older;
     var D = InlineToString.Debug;
     {
         var s = new InlineBuilder().ToInlineString();
         s.ToString(F).Is("");
         s.ToString(N).Is("");
         s.ToString(L).Is("");
         s.ToString(D).Is("");
     }
     {
         var s = new InlineBuilder()
         {
             "abc"
         }.ToInlineString();
         s.ToString(F).Is("abc");
         s.ToString(N).Is("abc");
         s.ToString(L).Is("abc");
         s.ToString(D).Is("abc");
     }
     {
         var s = new InlineBuilder()
         {
             Ins, "abc", Del, "def"
         }.ToInlineString();
         s.ToString(F).Is("abc");
         s.ToString(N).Is("abc");
         s.ToString(L).Is("def");
         s.ToString(D).Is("{Ins}abc{Del}def");
     }
     {
         var s = new InlineBuilder()
         {
             { Tag.S, "id", "rid", "name" }
         }.ToInlineString();
         s.ToString(F).Is("");
         s.ToString(N).Is("");
         s.ToString(L).Is("");
         s.ToString(D).Is("{name;id}");
     }
     {
         var s = new InlineBuilder()
         {
             { Tag.S, "id", "rid", "name", "ctype", "display", "<code>" }
         }.ToInlineString();
         s.ToString(F).Is("");
         s.ToString(N).Is("<code>");
         s.ToString(L).Is("<code>");
         s.ToString(D).Is("{name;id}");
     }
     {
         var s = new InlineBuilder()
         {
             Ins, { Tag.S, "id", "rid", "name", "ctype", "display", "<code>" }, Del, "abc"
         }.ToInlineString();
         s.ToString(F).Is("");
         s.ToString(N).Is("<code>");
         s.ToString(L).Is("abc");
         s.ToString(D).Is("{Ins}{name;id}{Del}abc");
     }
     {
         var s = new InlineBuilder()
         {
             Del, { Tag.S, "id", "rid", "name", "ctype", "display", "<code>" }, Ins, "abc"
         }.ToInlineString();
         s.ToString(F).Is("abc");
         s.ToString(N).Is("abc");
         s.ToString(L).Is("<code>");
         s.ToString(D).Is("{Del}{name;id}{Ins}abc");
     }
 }