public void TestAtomicReference() { var o = new Order { Id = 1, Name = "1" }; var r = AtomicReference <Order> .From(o); Assert.Same(o, r.Value); Assert.Equal(1, r.Value.Id); Assert.Equal("1", r.Value.Name); }
public void TestAtomicReferenceCas() { var o = new Order { Id = 1, Name = "1" }; var r = AtomicReference <Order> .From(o); var n = new Order { Id = 2, Name = "2" }; Assert.True(r.CompareExchange(n, o)); Assert.Same(n, r.Value); Assert.Equal(2, r.Value.Id); Assert.Equal("2", r.Value.Name); }
public void TestAtomicReferenceExchange() { var o = new Order { Id = 1, Name = "1" }; var r = AtomicReference <Order> .From(o); var n1 = new Order { Id = 3, Name = "3" }; Assert.True(r.Exchange(n1)); Assert.Same(n1, r.Value); Assert.Equal(3, r.Value.Id); Assert.Equal("3", r.Value.Name); var c = (Order)r; Assert.Equal(3, c.Id); Assert.Equal("3", c.Name); }