public void Save_ShouldCallSaveOnTheWrappedDataFactory()
		{
			using(ShimsContext.Create())
			{
				bool saveCalled = false;
				PageReference pageReference = new PageReference(1);

				ShimDataFactory.StaticConstructor = () => { };

				ShimDataFactory shimDataFactory = new ShimDataFactory
					{
						SavePageDataSaveActionAccessLevel = delegate
						{
							saveCalled = true;
							return pageReference;
						}
					};

				Assert.IsFalse(saveCalled);

				Mock<PageData> pageDataMock = new Mock<PageData> {CallBase = true};
				Mock<IContent> contentMock = pageDataMock.As<IContent>();

				Assert.AreEqual(pageReference, new DataFactoryWrapper(shimDataFactory, Mock.Of<IPageDataCaster>(), Mock.Of<IPermanentLinkMapper>()).Save(contentMock.Object, It.IsAny<SaveAction>(), It.IsAny<AccessLevel>()));

				Assert.IsTrue(saveCalled);
			}
		}
		public void MoveToWastebasket_ShouldCallMoveToWastebasketOnTheWrappedDataFactory()
		{
			using(ShimsContext.Create())
			{
				bool moveToWastebasketCalled = false;

				ShimDataFactory.StaticConstructor = () => { };

				ShimDataFactory shimDataFactory = new ShimDataFactory
					{
						MoveToWastebasketPageReference = delegate { moveToWastebasketCalled = true; }
					};

				Assert.IsFalse(moveToWastebasketCalled);

				new DataFactoryWrapper(shimDataFactory, Mock.Of<IPageDataCaster>(), Mock.Of<IPermanentLinkMapper>()).MoveToWastebasket(It.IsAny<ContentReference>(), It.IsAny<string>());

				Assert.IsTrue(moveToWastebasketCalled);
			}
		}