public void TestRotate() { Vector3F[] oldOrientation = _testShapes.StoreShapeOrientationArray(); Vector3F[] oldPosition = _testShapes.StoreShapePositionArray(); foreach (Shape3D shape in _testShapes) shape.Orientation = new Vector3F( 100.0f, 0.0f, 0.0f ); Vector3F[] newOrientation = _testShapes.StoreShapeOrientationArray(); Vector3F[] newPosition = _testShapes.StoreShapePositionArray(); IAction rotateAction = new RotateShapesAction( _testShapes, oldOrientation, newOrientation, oldPosition, newPosition); ResetPropertyChanged(); rotateAction.Do(); Assert.AreEqual( newOrientation[0], (_testShapes[0] as Shape3D).Orientation ); Assert.AreEqual( newOrientation[1], (_testShapes[1] as Shape3D).Orientation ); Assert.AreEqual( true, _propertyChanged ); ResetPropertyChanged(); rotateAction.Undo(); Assert.AreEqual( oldOrientation[0], (_testShapes[0] as Shape3D).Orientation ); Assert.AreEqual( oldOrientation[1], (_testShapes[1] as Shape3D).Orientation ); Assert.AreEqual( true, _propertyChanged ); ResetPropertyChanged(); rotateAction.Do(); Assert.AreEqual( newOrientation[0], (_testShapes[0] as Shape3D).Orientation ); Assert.AreEqual( newOrientation[1], (_testShapes[1] as Shape3D).Orientation ); Assert.AreEqual( true, _propertyChanged ); }