public async Task ProcessItem_Preview_CompareResults_Logs(ItemComparisonResult compareResult, string expectedLogEvent)
		{
			Guid itemGuid = Guid.NewGuid();
			IItemData remoteData = Substitute.For<IItemData>();
			remoteData.Id.Returns(itemGuid);
			GetSubstitute<IItemComparer>().Compare(Arg.Any<IItemData>(), Arg.Any<IItemData>()).Returns(compareResult);
			var contentItemInstaller = CreateInstance<ContentItemInstaller>();
			contentItemInstaller.AllowedItems.Add(itemGuid);

			await contentItemInstaller.ProcessItem(new PullItemModel { Preview = true }, remoteData, remoteData);

			GetSubstitute<IDefaultLogger>().Received(1).BeginEvent(Arg.Any<IItemData>(), expectedLogEvent, Arg.Any<string>(), Arg.Any<bool>());
		}
		public async Task ProcessItem_LocalDataExists_SameAsRemoteData_DoesNotSaveToDataStore()
		{
			Guid itemGuid = Guid.NewGuid();
			IItemData remoteData = Substitute.For<IItemData>();
			remoteData.Id.Returns(itemGuid);
			ItemComparisonResult icr = CreateComparisonResult(cr => cr.AreEqual.Returns(true));
			GetSubstitute<IItemComparer>().Compare(Arg.Any<IItemData>(), Arg.Any<IItemData>()).Returns(icr);
			var contentItemInstaller = CreateInstance<ContentItemInstaller>();
			contentItemInstaller.AllowedItems.Add(itemGuid);

			await contentItemInstaller.ProcessItem(new PullItemModel {  }, remoteData, remoteData);

			GetSubstitute<IDataStore>().Received(0).Save(Arg.Any<IItemData>());
		}
		public async Task ProcessItem_LocalDataExists_SameAsRemoteData_LogsSkipped()
		{
			Guid itemGuid = Guid.NewGuid();
			IItemData remoteData = Substitute.For<IItemData>();
			remoteData.Id.Returns(itemGuid);
			ItemComparisonResult icr = CreateComparisonResult(cr => cr.AreEqual.Returns(true));
			GetSubstitute<IItemComparer>().Compare(Arg.Any<IItemData>(), Arg.Any<IItemData>()).Returns(icr);
			var contentItemInstaller = CreateInstance<ContentItemInstaller>();
			contentItemInstaller.AllowedItems.Add(itemGuid);

			await contentItemInstaller.ProcessItem(new PullItemModel {  }, remoteData, remoteData);

			GetSubstitute<IDefaultLogger>().Received(1).BeginEvent(Arg.Any<IItemData>(), LogStatus.Skipped, Arg.Any<string>(), Arg.Any<bool>());
		}