public void ConstructorSelection()
        {
            DomainObjectWithSpecialConstructor d1 = DomainObjectWithSpecialConstructor.NewObject("string");

            Assert.That(d1.S, Is.EqualTo("string"));
            Assert.That(d1.O, Is.Null);

            object obj = new object();
            DomainObjectWithSpecialConstructor d2 = DomainObjectWithSpecialConstructor.NewObject(obj);

            Assert.That(d2.S, Is.Null);
            Assert.That(d2.O, Is.SameAs(obj));
        }
        public void ConstructorWorksIfCalledIndirectly()
        {
            var instance = DomainObjectWithSpecialConstructor.NewObject("string");

            Assert.That(instance, Is.Not.Null);
        }