public void _With_Correct_Type_Expect_Success()
        {
            ////Arrange
            var fakeObject = new FakeObject { Name = "john Doe" };

            ////Act
            Ensure.That(nameof(fakeObject), fakeObject).IsOfType(fakeObject.GetType());
        }
        public void _With_Valid_Object_Expect_Success()
        {
            ////Arrange
            var fakeObject = new FakeObject { Name = "john Doe" };

            ////Act
            Ensure.That(nameof(fakeObject), fakeObject).NotDefault();
        }
        public void _With_Wrong__Type_Expect_ArgumentException()
        {
            ////Arrange
            var fakeObject = new FakeObject { Name = "john Doe" };

            ////Act & Test
            Assert.Throws<ArgumentException>(() =>
                Ensure.That(nameof(fakeObject), fakeObject).IsOfType(GetType()));
        }
        public void _With_A_Predicate_That_Will_Validate_Expect_Success()
        {
            ////Arrange
            var fakeObject = new FakeObject { Name = "john Doe" };

            ////Act
            Ensure.That(nameof(fakeObject), fakeObject).Must(x => x.Name == "john Doe");

        }
        public void _With_A_Predicate_That_Will_Not_Be_Valid_Expect_Failur()
        {
            ////Arrange
            var fakeObject = new FakeObject { Name = "john Doe" };

            ////Act & Test
            Assert.Throws<ArgumentException>(() =>
                Ensure.That(nameof(fakeObject), fakeObject).Must(x => x.Name == "Some other"));

        }
        public void _With_Two_Valid_Properties_Expect_Sucess()
        {
            ////Arrange
            var fakeObject = new FakeObject { Name = "john Doe", Name2 = "john Doe2" };

            ////Act
            Ensure.That(nameof(fakeObject), fakeObject).Must(x => x.Name == "john Doe" && x.Name2 == "john Doe2");

        }
        public void _With_One_Valid_Value_And_One_That_Are_Not_Valid_Expect_ArgumentException()
        {
            ////Arrange
            var fakeObject = new FakeObject { Name = "john Doe" };

            ////Act & Test
            Assert.Throws<ArgumentException>(() =>
                Ensure.That(nameof(fakeObject), fakeObject).Must(x => x.Name == "john Doe" && x.Name2 != null));

        }