public void Return_string_type_if_string_type_given()
        {
            //Arrange
            privateTester = new Core.PrivateTester <string>();

            //Act
            var type = privateTester.GetPrivateType();

            //Asssert
            Assert.Equal(typeof(string), type);
        }
示例#2
0
        public void Return_10_if_value_of_private_field_is_10()
        {
            //Arrange
            object instance = new PrivateFieldClass(10);

            privateTester = new Core.PrivateTester <PrivateFieldClass>();

            //Act
            var fieldValue = privateTester.GetPrivateField(instance, "privateInt");

            //Assert
            Assert.Equal(10, fieldValue);
        }
示例#3
0
        public void Throws_if_property_is_public()
        {
            //Arrange
            object @object = new PrivateFieldClass(10);

            privateTester = new Core.PrivateTester <PrivateFieldClass>();

            //Assert
            var fieldName = "publicInt";

            Assert.Throws <PrivatePropertyException>(
                () => privateTester.GetPrivateField(@object, fieldName)
                );
        }
示例#4
0
        public void Throws_if_property_not_present()
        {
            //Arrange
            object @object = new PrivateFieldClass(10);

            privateTester = new Core.PrivateTester <PrivateFieldClass>();

            //Assert
            var fieldName = "nonExistingField";

            Assert.Throws <PrivatePropertyException>(
                () => privateTester.GetPrivateField(@object, fieldName)
                );
        }
示例#5
0
        public void Throw_if_method_require_parameter_but_no_parameter_provided()
        {
            //Arrange
            privateTester = new Core.PrivateTester <PrivateMethodClass>(
                new PrivateMethodFinder <PrivateMethodClass>()
                );

            //Assert
            var methodName = "PrivateMethodWithParameter";

            Assert.Throws <Core.InvalidArgumentListException>(
                () => privateTester.InvokePrivateMethod(methodName)
                );
        }
示例#6
0
        public void Throw_if_parameter_number_is_diffrent_than_required()
        {
            //Arrange
            privateTester = new Core.PrivateTester <PrivateMethodClass>(
                new PrivateMethodFinder <PrivateMethodClass>()
                );

            //Assert
            var methodName = "PrivateMethodWithParameter";

            Assert.Throws <Core.InvalidArgumentListException>(
                () => privateTester.InvokePrivateMethod(methodName, 1, 3)
                );
        }
示例#7
0
        public void Call_method_with_given_name()
        {
            //Arrange
            privateTester = new Core.PrivateTester <PrivateMethodClass>(
                new PrivateMethodFinder <PrivateMethodClass>()
                );

            //Act
            privateTester.InvokePrivateMethod("PrivateMethod");

            //Assert
            Assert.Equal(1, PrivateMethodClass.privateMethodCalls);
            Assert.Equal(0, PrivateMethodClass.publicMethodCalls);
        }
示例#8
0
        public void Throw_if_class_has_no_method_with_given_type()
        {
            //Arrange
            privateTester = new Core.PrivateTester <PrivateMethodClass>(
                new PrivateMethodFinder <PrivateMethodClass>()
                );

            //Assert
            var methodName = "NotExistentMethod";

            Assert.Throws <InvalidOperationException>(
                () => privateTester.InvokePrivateMethod(methodName)
                );
        }
示例#9
0
        public void Throw_if_invlaid_type_of_parameter_provided()
        {
            //Arrange
            object @object = new PrivateFieldClass(10);

            privateTester = new Core.PrivateTester <PrivateFieldClass>();

            //Assert
            var fieldName = "privateInt";

            Assert.Throws <PrivatePropertyException>(
                () => privateTester.SetPrivateField(@object, fieldName, "zero")
                );
        }
示例#10
0
        public void Throw_if_member_with_given_name_not_presnt()
        {
            //Arrange
            object @object = new PrivateFieldClass(10);

            privateTester = new Core.PrivateTester <PrivateFieldClass>();

            //Assert
            var fieldName = "nonExistingField";

            Assert.Throws <PrivatePropertyException>(
                () => privateTester.SetPrivateField(@object, fieldName, 0)
                );
        }
示例#11
0
        public void Call_method_with_given_name_and_provide_parameters()
        {
            //Arrange
            privateTester = new Core.PrivateTester <PrivateMethodClass>(
                new PrivateMethodFinder <PrivateMethodClass>()
                );

            //Act
            privateTester.InvokePrivateMethod("PrivateMethodWithParameter", 1);

            //Assert
            Assert.Equal(1, PrivateMethodClass.privateMethodCalls);
            Assert.Equal(0, PrivateMethodClass.publicMethodCalls);
            Assert.Equal(1, PrivateMethodClass.passedParameter);
        }
示例#12
0
        public void Change_value_of_private_string()
        {
            //Arrange
            var instance = new PrivateFieldClass(10);

            privateTester = new Core.PrivateTester <PrivateFieldClass>();

            var currentPrivateStringValue = instance.GetPrivateString();

            Assert.Equal("nothing", currentPrivateStringValue);

            //Act
            privateTester.SetPrivateField(instance, "privateString", "value");

            //Assert
            currentPrivateStringValue = instance.GetPrivateString();
            Assert.Equal("value", currentPrivateStringValue);
        }
示例#13
0
        public void Change_value_of_private_field()
        {
            //Arrange
            var instance = new PrivateFieldClass(10);

            privateTester = new Core.PrivateTester <PrivateFieldClass>();

            var currentPrivateIntValue = instance.GetPrivateInt();

            Assert.Equal(10, currentPrivateIntValue);

            //Act
            privateTester.SetPrivateField(instance, "privateInt", 12);

            //Assert
            currentPrivateIntValue = instance.GetPrivateInt();
            Assert.Equal(12, currentPrivateIntValue);
        }