main
 1using System;
 2using jive;
 3using Machine.Specifications;
 4
 5namespace specs.unit.utility
 6{
 7  public class ValueTypeSpecs
 8  {
 9    public class when_two_different_instances_of_the_same_type_have_the_same_values
10    {
11      It should_consider_them_equal = () =>
12      {
13        var birthDate = DateTime.Today;
14        new TestType {first = "mo", BirthDate = birthDate}
15        .ShouldEqual(new TestType {first = "mo", BirthDate = birthDate});
16      };
17    }
18
19    public class when_comparing_a_single_instance
20    {
21      It should_consider_them_equal = () =>
22      {
23        var instance = new TestType {first = "mo", BirthDate = DateTime.Today};
24        instance.ShouldEqual(instance);
25      };
26    }
27
28    public class when_two_different_instances_of_the_same_type_have_different_values
29    {
30      It should_consider_them_equal = () =>
31      {
32        new TestType {first = "mo", BirthDate = DateTime.Today}
33        .ShouldNotEqual(new TestType {first = "mo", BirthDate = DateTime.Today.AddDays(-1)});
34      };
35    }
36
37    class TestType : ValueType<TestType>
38    {
39      public string first { get; set; }
40      public DateTime BirthDate { get; set; }
41    }
42  }
43}