public void A_Few_One_Liner_Tests()
 {
     var attribs = new HtmlAttributes();;
     Assert.That(attribs["IDontExist"], Is.EqualTo(null));
     Assert.That(attribs.IsReadOnly, Is.False);
     Assert.That(attribs.IsFixedSize, Is.False);
 }
 public void Can_Add_Objects_As_Attribs_And_Values_And_Will_use_ToString()
 {
     var attribs = new HtmlAttributes();
     var element = new Element();
     attribs.Add(element, 96);
     Assert.That(attribs[element.ToString()], Is.EqualTo("96"));
 }
 public void Contains_And_ContainsKeys_Work()
 {
     var hash = new Hash {{"Key1", "Val1"}, {"Key2", "Val2"}, {"Key3", "Val3"}};
     var attribs = new HtmlAttributes(hash);
     Assert.IsTrue(attribs.Contains("Key1"));
     Assert.IsFalse(attribs.Contains("Key99"));
     Assert.IsTrue(attribs.Contains(new KeyValuePair<string,string>("Key1","OnlyKeyIsChecked")));
     Assert.IsFalse(attribs.Contains(new KeyValuePair<string, string>("Key99", "OnlyKeyIsChecked")));
 }
 public void Counting_Is_Accurate()
 {
     var attribs = new HtmlAttributes();
     Assert.That(attribs.Count, Is.EqualTo(0));
     attribs["X"] = "1";
     attribs["Y"] = "2";
     attribs["Z"] = "3";
     Assert.That(attribs.Count, Is.EqualTo(3));
     attribs.Clear();
     Assert.That(attribs.Count, Is.EqualTo(0));
 }
 public void Est_Length_Is_Accurate()
 {
     var attribs = new HtmlAttributes();
     Assert.That(attribs.GetEstLength(), Is.EqualTo(0));
     attribs["Attrib1"] = "1Value";
     Assert.That(attribs.GetEstLength(), Is.EqualTo(16));
     attribs["Attrib2"] = "2Value-Changed";
     Assert.That(attribs.GetEstLength(), Is.EqualTo(40));
     attribs["Attrib3-Changed"] = "3Val";
     Assert.That(attribs.GetEstLength(), Is.EqualTo(62));
     attribs["Attrib1"] = null;
     Assert.That(attribs.GetEstLength(), Is.EqualTo(46));
     attribs["Attrib2"] = "2Value-Changed-more";
     Assert.That(attribs.GetEstLength(), Is.EqualTo(51));
 }
 public void Explisit_Interfaces_Work()
 {
     var hash = new Hash {{"Key1", "Val1"}, {"Key2", "Val2"}, {"Key3", "Val3"}};
     var attribs = new HtmlAttributes(hash);
     var iattribs = (IDictionary)attribs;
     Assert.That(iattribs.Count, Is.EqualTo(attribs.Count));
     Assert.That(iattribs.Keys, Is.EqualTo(attribs.Keys));
     Assert.That(iattribs.Values, Is.EqualTo(attribs.Values));
     iattribs.Remove("Key1");
     Assert.That(iattribs.Count, Is.EqualTo(attribs.Count));
     iattribs["NewKey"] = 99;
     Assert.That(iattribs["NewKey"], Is.EqualTo("99"));
     foreach (DictionaryEntry de in iattribs)
     {
         Assert.That(de.Value, Is.EqualTo(attribs[de.Key.ToString()]));
     }
     iattribs["NewKey"] = null;
     Assert.That(iattribs["NewKey"], Is.EqualTo(null));
     var enumAttribs = (IEnumerable)attribs;
     foreach (KeyValuePair<string,string> de in enumAttribs)
     {
         Assert.That(de.Value, Is.EqualTo(attribs[de.Key]));
     }
 }
 public void An_Attribute_Sticks_In_The_Collection()
 {
     var attribs = new HtmlAttributes {{"AnAttribute", "AValue"}};
     Assert.That(attribs["AnAttribute"], Is.EqualTo("AValue"));
 }
 public void An_Attribute_Sticks_When_Added_By_KeyValuePair()
 {
     var attribs = new HtmlAttributes {new KeyValuePair<string, string>("AnAttribute", "AValue")};
     Assert.That(attribs["AnAttribute"], Is.EqualTo("AValue"));
 }
 public void TryGetValue_Does_Not_Fail()
 {
     var hash = new Hash {{"Key1", "Val1"}, {"Key2", "Val2"}, {"Key3", "Val3"}};
     var attribs = new HtmlAttributes(hash);
     string val;
     attribs.TryGetValue("Key1", out val);
     Assert.That(val, Is.EqualTo("Val1"));
     attribs.TryGetValue("Key99", out val);
     Assert.That(val, Is.EqualTo(null));
 }
            public void These_Method_Are_Not_Implemented()
            {
                var hash = new Hash {{"Key1", "Val1"}, {"Key2", "Val2"}, {"Key3", "Val3"}};
                var attribs = new HtmlAttributes(hash);
                var iattribs = (ICollection)attribs;
                int exceptionCount = 0;
                try
                {
                    object val = iattribs.SyncRoot;
                }
                catch(Exception ex)
                {
                    Assert.That(ex.GetType(), Is.EqualTo(typeof(NotImplementedException)));
                    exceptionCount ++;
                }

                try
                {
                    iattribs.CopyTo(new[] { "1" }, 0);
                }
                catch(Exception ex)
                {
                    Assert.That(ex.GetType(), Is.EqualTo(typeof(NotImplementedException)));
                    exceptionCount ++;
                }

                try
                {
                    bool val = iattribs.IsSynchronized;
                }
                catch(Exception ex)
                {
                    Assert.That(ex.GetType(), Is.EqualTo(typeof(NotImplementedException)));
                    exceptionCount++;
                }

                try
                {
                    attribs.CopyTo(new[] { new KeyValuePair<string, string>("ValNew", "ValNew") }, 10);
                }
                catch (Exception ex)
                {
                    Assert.That(ex.GetType(), Is.EqualTo(typeof(NotImplementedException)));
                    exceptionCount++;
                }

                Assert.That(exceptionCount, Is.EqualTo(4));
            }
 public void Should_be_case_insensitive()
 {
     var attributes = new HtmlAttributes {{"Key", "value"}};
     Assert.That(attributes["key"], Is.EqualTo("value"));
 }
 public void Removing_An_Item_Doesnot_Break_Est()
 {
     var attribs = new HtmlAttributes();
     attribs["Attrib1"] = "1Value";
     attribs["Attrib2"] = "2Value-Changed";
     attribs["Attrib3-Changed"] = "3Val";
     Assert.That(attribs.GetEstLength(), Is.EqualTo(62));
     attribs.Remove("Attrib1");
     Assert.That(attribs.GetEstLength(), Is.EqualTo(46));
     attribs["Attrib1"] = "1Value";
     attribs.Remove(new KeyValuePair<string, string>("Attrib2", "2Value-Changed"));
     Assert.That(attribs.GetEstLength(), Is.EqualTo(38));
 }
 public void I_Can_Add_A_Dictionary_At_Init()
 {
     var hash = new Hash {{"Key1", "Val1"}};
     var attribs = new HtmlAttributes(hash);
     Assert.That(attribs["Key1"], Is.EqualTo("Val1"));
 }