Tortuga-TestMonkey icon indicating copy to clipboard operation
Tortuga-TestMonkey copied to clipboard

IEditableObject Tests

Open Grauenwolf opened this issue 3 years ago • 0 comments

foreach (var constructor in Class.Constructors.Where(c => c.IsCreatable)) 
{ 
	<text>
	
        @Tag("IEditableObject")
	    @TestAttribute
        public void @(Test.ClassName + "_IEditableObject_" + constructor.SafeName + "_BeginCancel_Simple")()
	    {
            @Class.FullName objectUnderTest;

		    try
		    {
			    objectUnderTest = @constructor.GetConstructorCode();
		    }
		    catch (ArgumentException)
		    {
			    //OK
                return;
		    }

            ((IEditableObject)objectUnderTest).BeginEdit();
            ((IEditableObject)objectUnderTest).CancelEdit();
	    }

        @Tag("IEditableObject")
        @TestAttribute
        public void @(Test.ClassName + "_IEditableObject_" + constructor.SafeName + "_BeginEnd_Simple")()
	    {
            @Class.FullName objectUnderTest;

		    try
		    {
			    objectUnderTest = @constructor.GetConstructorCode();
		    }
		    catch (ArgumentException)
		    {
			    //OK
                return;
		    }

            ((IEditableObject)objectUnderTest).BeginEdit();
            ((IEditableObject)objectUnderTest).EndEdit();
	    }

					


        @Tag("IEditableObject")
	    @TestAttribute
        public void @(Test.ClassName + "_IEditableObject_" + constructor.SafeName + "_BeginCancel")()
	    {
            @Class.FullName objectUnderTest;

		    try
		    {
			    objectUnderTest = GetObject(1);
		    }
		    catch (ArgumentException)
		    {
			    //OK
                return;
		    }

		    var expected = GetValues(objectUnderTest); //CancelEdit should return us to these values

		    ((IEditableObject)objectUnderTest).BeginEdit();
		    SetValues(objectUnderTest, 2);
            ((IEditableObject)objectUnderTest).CancelEdit();

		    var diffs = GetDiffs(expected, objectUnderTest);
		    @Assert.AreEqual("0", "diffs.Count");

	    }

        @Tag("IEditableObject")
        @TestAttribute
        public void @(Test.ClassName + "_IEditableObject_" + constructor.SafeName + "_BeginEnd")()
	    {
            @Class.FullName objectUnderTest;

		    try
		    {
			    objectUnderTest = GetObject(1);
		    }
		    catch (ArgumentException)
		    {
			    //OK
                return;
		    }

       
		    ((IEditableObject)objectUnderTest).BeginEdit();
		    SetValues(objectUnderTest, 2);
		    var expected = GetValues(objectUnderTest); //EndEdit shouldn't change any values
            ((IEditableObject)objectUnderTest).EndEdit();

		    var diffs = GetDiffs(expected, objectUnderTest);
		    @Assert.AreEqual("0", "diffs.Count");
	    }



        @Tag("IEditableObject")
	    @TestAttribute
        public void @(Test.ClassName + "_IEditableObject_" + constructor.SafeName + "_BeginBeginCancelCancel")()
	    {
            @Class.FullName objectUnderTest;

		    try
		    {
			    objectUnderTest = GetObject(1);
		    }
		    catch (ArgumentException)
		    {
			    //OK
                return;
		    }

		    var expected = GetValues(objectUnderTest); //The second CancelEdit should return us to these values

		    ((IEditableObject)objectUnderTest).BeginEdit();
		    SetValues(objectUnderTest, 2);

		    ((IEditableObject)objectUnderTest).BeginEdit(); //This is a no-op
		    SetValues(objectUnderTest, 3);

		    ((IEditableObject)objectUnderTest).CancelEdit(); //and we are back to the original values

		    var diffs1 = GetDiffs(expected, objectUnderTest);
		    @Assert.AreEqual("0", "diffs1.Count");

		    ((IEditableObject)objectUnderTest).CancelEdit(); //this is a no-op

		    var diffs2 = GetDiffs(expected, objectUnderTest); 
		    @Assert.AreEqual("0", "diffs2.Count");


	    }

        @Tag("IEditableObject")
	    @TestAttribute
        public void @(Test.ClassName + "_IEditableObject_" + constructor.SafeName + "_BeginBeginCancelEnd")()
	    {

            @Class.FullName objectUnderTest;

		    try
		    {
			    objectUnderTest = GetObject(1);
		    }
		    catch (ArgumentException)
		    {
			    //OK
                return;
		    }

		    var expected = GetValues(objectUnderTest); //The first CancelEdit should return us to these values

		    ((IEditableObject)objectUnderTest).BeginEdit();
		    SetValues(objectUnderTest, 2);


		    ((IEditableObject)objectUnderTest).BeginEdit();
		    SetValues(objectUnderTest, 3);

		    ((IEditableObject)objectUnderTest).CancelEdit();

		    var diffs1 = GetDiffs(expected, objectUnderTest);
		    @Assert.AreEqual("0", "diffs1.Count");

		    ((IEditableObject)objectUnderTest).EndEdit(); //this is a no-op

		    var diffs2 = GetDiffs(expected, objectUnderTest); 
		    @Assert.AreEqual("0", "diffs2.Count");


	    }


        @Tag("IEditableObject")
	    @TestAttribute
        public void @(Test.ClassName + "_IEditableObject_" + constructor.SafeName + "_BeginBeginEndEnd")()
	    {

            @Class.FullName objectUnderTest;

		    try
		    {
			    objectUnderTest = GetObject(1);
		    }
		    catch (ArgumentException)
		    {
			    //OK
                return;
		    }


		    ((IEditableObject)objectUnderTest).BeginEdit();
		    SetValues(objectUnderTest, 2);

		    ((IEditableObject)objectUnderTest).BeginEdit();
		    SetValues(objectUnderTest, 3);

		    var expected = GetValues(objectUnderTest);

		    ((IEditableObject)objectUnderTest).EndEdit();

		    var diffs1 = GetDiffs(expected, objectUnderTest);
		    @Assert.AreEqual("0", "diffs1.Count");

		    ((IEditableObject)objectUnderTest).EndEdit();

		    var diffs2 = GetDiffs(expected, objectUnderTest); 
		    @Assert.AreEqual("0", "diffs2.Count");

	    }

    </text>	
}	

}

Grauenwolf avatar Jun 02 '21 01:06 Grauenwolf