public void StudioResourceRepository_DeleteItem_ItemRemoved_ChildrenChangedFired()
{
//------------Setup for test--------------------------
var _propertyChangedCalled = false;
var mockExplorerResourceRepository = new Mock<IClientExplorerResourceRepository>();
mockExplorerResourceRepository.Setup(m => m.DeleteItem(It.IsAny<IExplorerItem>(), It.IsAny<Guid>()))
.Returns(new ExplorerRepositoryResult(ExecStatus.Success, "Success"))
.Verifiable();
var environmentId = Guid.NewGuid();
var workflowId = Guid.NewGuid();
var folderID = Guid.NewGuid();
SetupEnvironmentRepo(environmentId);
var mockVersionRepository = new Mock<IVersionRepository>();
var repository = new StudioResourceRepository(GetTestData(workflowId.ToString(), folderID: folderID), environmentId, _invoke)
{
GetVersionProxy = id => mockVersionRepository.Object,
GetExplorerProxy = id => mockExplorerResourceRepository.Object
};
var folderItem = repository.FindItemById(folderID);
ExplorerItemModel explorerItemModel = folderItem.Parent as ExplorerItemModel;
// ReSharper disable PossibleNullReferenceException
explorerItemModel.PropertyChanged += (sender, args) =>
// ReSharper restore PossibleNullReferenceException
{
if (args.PropertyName == "ChildrenCount")
{
_propertyChangedCalled = true;
}
};
//------------Execute Test---------------------------
repository.DeleteItem(environmentId, folderID);
//------------Assert Results-------------------------
var foundItem = repository.FindItemById(folderID);
Assert.IsNull(foundItem);
Assert.IsTrue(_propertyChangedCalled);
}