public void PrintCustomObjectPrintsMembers() { // Arrange MockObjectVisitor visitor = CreateObjectVisitor(); var person = new Person { Name = "David", Age = 23.3, Dob = new DateTime(1986, 11, 19), LongType = 1000000000, Type = 1 }; using (new CultureReplacer("en-US")) { // Act visitor.Print(person); // Assert Assert.Equal(9, visitor.Members.Count); Assert.True(visitor.Members.Contains("double Age = 23.3")); Assert.True(visitor.Members.Contains("string Name = David")); Assert.True(visitor.Members.Contains("DateTime Dob = 11/19/1986 12:00:00 AM")); Assert.True(visitor.Members.Contains("short Type = 1")); Assert.True(visitor.Members.Contains("float Float = 0")); Assert.True(visitor.Members.Contains("byte Byte = 0")); Assert.True(visitor.Members.Contains("decimal Decimal = 0")); Assert.True(visitor.Members.Contains("bool Bool = False")); } }
public void PrintConvertsTypeToString() { // Arrange MockObjectVisitor visitor = CreateObjectVisitor(); // Act visitor.Print(typeof(string)); // Assert Assert.Equal("typeof(string)", visitor.Values[0]); }
public void PrintWithNull() { // Arrange MockObjectVisitor visitor = CreateObjectVisitor(); // Act visitor.Print(null); // Assert Assert.Equal(1, visitor.Values.Count); Assert.Equal("null", visitor.Values[0]); }
public void PrintDateTime() { // Arrange MockObjectVisitor visitor = CreateObjectVisitor(); var dt = new DateTime(2001, 11, 20, 10, 30, 1); // Act visitor.Print(dt); // Assert Assert.AreEqual("11/20/2001 10:30:01 AM", visitor.Values[0]); }
public void PrintClassWithPropertyThatThrowsExceptionPrintsException() { // Arrange MockObjectVisitor visitor = CreateObjectVisitor(); ClassWithPropertyThatThrowsException value = new ClassWithPropertyThatThrowsException(); // Act visitor.Print(value); // Assert Assert.Equal("int MyProperty = Property accessor 'MyProperty' on object 'System.Web.Helpers.Test.ObjectInfoTest+ClassWithPropertyThatThrowsException' threw the following exception:'Property that shows an exception'", visitor.Members[0]); }
public void PrintUsesToStringOfIConvertibleObjects() { // Arrange MockObjectVisitor visitor = CreateObjectVisitor(); ConvertibleClass cls = new ConvertibleClass(); // Act visitor.Print(cls); // Assert Assert.Equal("Test", visitor.Values[0]); }
public void PrintWithEmptyString() { // Arrange MockObjectVisitor visitor = CreateObjectVisitor(); // Act visitor.Print(String.Empty); // Assert Assert.Equal(1, visitor.Values.Count); Assert.Equal(String.Empty, visitor.Values[0]); }
public void PrintWithInt() { // Arrange MockObjectVisitor visitor = CreateObjectVisitor(); // Act visitor.Print(404); // Assert Assert.Equal(1, visitor.Values.Count); Assert.Equal("404", visitor.Values[0]); }
public void PrintExcludesWriteOnlyProperties() { // Arrange MockObjectVisitor visitor = CreateObjectVisitor(); ClassWithWriteOnlyProperty cls = new ClassWithWriteOnlyProperty(); // Act visitor.Print(cls); // Assert Assert.Equal(0, visitor.Members.Count); }
public void PrintWithEmptyString() { // Arrange MockObjectVisitor visitor = CreateObjectVisitor(); // Act visitor.Print(String.Empty); // Assert string value = Assert.Single(visitor.Values); Assert.Equal(String.Empty, value); }
public void PrintWithAnonymousType() { // Arrange MockObjectVisitor visitor = CreateObjectVisitor(); var value = new { Name = "John", X = 1 }; // Act visitor.Print(value); // Assert Assert.True(visitor.Members.Contains("string Name = John")); Assert.True(visitor.Members.Contains("int X = 1")); }
public void PrintWithInt() { // Arrange MockObjectVisitor visitor = CreateObjectVisitor(); // Act visitor.Print(404); // Assert string value = Assert.Single(visitor.Values); Assert.Equal("404", value); }
public void PrintWithIEnumerable() { // Arrange MockObjectVisitor visitor = CreateObjectVisitor(); var values = Enumerable.Range(0, 10); // Act visitor.Print(values); // Assert foreach (var num in values) { Assert.True(visitor.Values.Contains(num.ToString())); } }
public void PrintShowsVisitedWhenCircularReferenceIsIEnumerable() { // Arrange MockObjectVisitor visitor = CreateObjectVisitor(); List <object> values = new List <object>(); values.Add(values); // Act visitor.Print(values); // Assert Assert.Equal("Visited", visitor.Values[0]); Assert.Equal("Visited " + values.GetHashCode(), visitor.Visited[0]); }
public void PrintDateTime() { using (new CultureReplacer("en-US")) { // Arrange MockObjectVisitor visitor = CreateObjectVisitor(); var dt = new DateTime(2001, 11, 20, 10, 30, 1); // Act visitor.Print(dt); // Assert Assert.Equal("11/20/2001 10:30:01 AM", visitor.Values[0]); } }
public void PrintShowsVisitedWhenCircularReferenceIsIDictionary() { // Arrange MockObjectVisitor visitor = CreateObjectVisitor(); OrderedDictionary values = new OrderedDictionary(); values[values] = values; // Act visitor.Print(values); // Assert Assert.Equal("Visited", visitor.Values[0]); Assert.Equal("Visited " + values.GetHashCode(), visitor.Visited[0]); }
public void PrintWithIDictionary() { // Arrange MockObjectVisitor visitor = CreateObjectVisitor(); IDictionary dict = new OrderedDictionary(); dict.Add("foo", "bar"); dict.Add("abc", 500); // Act visitor.Print(dict); // Assert Assert.Equal("foo = bar", visitor.KeyValuePairs[0]); Assert.Equal("abc = 500", visitor.KeyValuePairs[1]); }
public void PrintNameValueCollectionPrintsKeysAndValues() { // Arrange MockObjectVisitor visitor = CreateObjectVisitor(); var values = new NameValueCollection(); values["a"] = "1"; values["b"] = null; // Act visitor.Print(values); // Assert Assert.Equal("a = 1", visitor.KeyValuePairs[0]); Assert.Equal("b = null", visitor.KeyValuePairs[1]); }
public void PrintClassWithPublicFields() { // Arrange MockObjectVisitor visitor = CreateObjectVisitor(); ClassWithFields value = new ClassWithFields(); value.Foo = "John"; value.Bar = 1; // Actt visitor.Print(value); // Assert Assert.True(visitor.Members.Contains("string Foo = John")); Assert.True(visitor.Members.Contains("int Bar = 1")); }
public void PrintClassWithDynamicMembersReturningNullPrintsNoMembers() { // Arrange MockObjectVisitor visitor = CreateObjectVisitor(); dynamic d = new ClassWithDynamicAnNullMemberNames(); d.Cycle = d; d.Name = "Foo"; d.Value = null; // Act visitor.Print(d); // Assert Assert.False(visitor.Members.Any()); }
public void PrintWithArrayPrintsIndex() { // Arrange MockObjectVisitor visitor = CreateObjectVisitor(); var values = Enumerable.Range(0, 10).ToArray(); // Act visitor.Print(values); // Assert for (int i = 0; i < values.Length; i++) { Assert.True(visitor.Values.Contains(values[i].ToString())); Assert.True(visitor.Indexes.Contains(i)); } }
public void PrintWithGenericIListPrintsIndex() { // Arrange MockObjectVisitor visitor = CreateObjectVisitor(); var values = Enumerable.Range(0, 10).ToList(); // Act visitor.Print(values); // Assert for (int i = 0; i < values.Count; i++) { Assert.Contains(values[i].ToString(), visitor.Values); Assert.Contains(i, visitor.Indexes); } }
public void PrintClassWithDynamicMembersPrintsMembersIfGetDynamicMemberNamesIsImplemented() { // Arrange MockObjectVisitor visitor = CreateObjectVisitor(); dynamic d = new DynamicDictionary(); d.Cycle = d; d.Name = "Foo"; d.Value = null; // Act visitor.Print(d); // Assert Assert.True(visitor.Members.Contains("DynamicDictionary Cycle = Visited")); Assert.True(visitor.Members.Contains("string Name = Foo")); Assert.True(visitor.Members.Contains("Value = null")); }
public void PrintShowsVisitedWhenCircularReferenceIsNameValueCollection() { // Arrange MockObjectVisitor visitor = CreateObjectVisitor(); NameValueCollection nameValues = new NameValueCollection(); nameValues["id"] = "1"; List <NameValueCollection> values = new List <NameValueCollection>(); values.Add(nameValues); values.Add(nameValues); // Act visitor.Print(values); // Assert Assert.True(visitor.Values.Contains("Visited")); Assert.True(visitor.Visited.Contains("Visited " + nameValues.GetHashCode())); }
public void PrintShowsVisitedWhenCircularReferenceInObjectGraph() { // Arrange MockObjectVisitor visitor = CreateObjectVisitor(); PersonNode node = new PersonNode { Person = new Person { Name = "David", Age = 23.3 } }; node.Next = node; // Act visitor.Print(node); // Assert Assert.Contains("string Name = David", visitor.Members); Assert.Contains(String.Format("double Age = {0}", 23.3), visitor.Members); Assert.Contains("PersonNode Next = Visited", visitor.Members); }
public void PrintWritesEnumeratedElementsUntilLimitIsReached() { // Arrange MockObjectVisitor visitor = CreateObjectVisitor(); var enumeration = Enumerable.Range(0, 2000); // Act visitor.Print(enumeration); // Assert for (int i = 0; i <= 2000; i++) { if (i < 1000) { Assert.True(visitor.Values.Contains(i.ToString())); } else { Assert.False(visitor.Values.Contains(i.ToString())); } } Assert.True(visitor.Values.Contains("Limit Exceeded")); }