protected bool Equals(Employee other) { return string.Equals(Name, other.Name) && Equals(Supervisor, other.Supervisor); }
public void can_round_trip() { var employee1 = new Employee() { Name = "Austin" }; var stream = new MemoryStream(); _serializer.Serialize(employee1, stream); stream.Position = 0; var employee2 = _serializer.Deserialize(stream).ShouldBeOfType<Employee>(); employee1.ShouldBe(employee2); }
public void can_round_trip_circular_dependencies() { var employee = new Employee { Name = "Jim" }; var boss = new Employee { Name = "Boss", Subordinates = { employee } }; employee.Supervisor = boss; var stream = new MemoryStream(); _serializer.Serialize(new List<Employee> { boss, employee }, stream); stream.Position = 0; var employees = _serializer.Deserialize(stream).ShouldBeOfType<List<Employee>>(); var newBoss = employees.First(); var newEmployee = employees.Last(); newBoss.ShouldBe(boss); newEmployee.ShouldBe(employee); //Same object reference newEmployee.Supervisor.ShouldBeTheSameAs(newBoss); }