// ReSharper disable MethodTooLong public void ExplorerItemModel_Clone_ReturnsNewObjectWithAllPropertiesSet() { //------------Setup for test-------------------------- var connectControlSingleton = new Mock<IConnectControlSingleton>().Object; var explorerItemModel = new ExplorerItemModel(connectControlSingleton, new Mock<IStudioResourceRepository>().Object); var parentModel = new ExplorerItemModel(connectControlSingleton, new Mock<IStudioResourceRepository>().Object); explorerItemModel.DisplayName = "Test1"; var childItemModel = new ExplorerItemModel(connectControlSingleton, new Mock<IStudioResourceRepository>().Object); explorerItemModel.Children.Add(childItemModel); explorerItemModel.EnvironmentId = Guid.NewGuid(); explorerItemModel.Parent = parentModel; explorerItemModel.Permissions = Permissions.Contribute; explorerItemModel.ResourceId = Guid.NewGuid(); explorerItemModel.ResourcePath = "TestResourcePath"; explorerItemModel.ResourceType = ResourceType.PluginService; explorerItemModel.VersionInfo = new VersionInfo { VersionNumber = "2" , Reason = "Save", ResourceId = Guid.NewGuid()}; var properties = typeof(ExplorerItemModel).GetProperties(); //------------Execute Test--------------------------- var clonedItemModel = explorerItemModel.Clone(connectControlSingleton, new Mock<IStudioResourceRepository>().Object); //------------Assert Results------------------------- Assert.AreEqual(68, properties.Length); Assert.AreEqual(explorerItemModel.DisplayName, clonedItemModel.DisplayName); Assert.AreEqual(explorerItemModel.Children.Count, clonedItemModel.Children.Count); Assert.AreEqual(explorerItemModel.CanConnect, clonedItemModel.CanConnect); Assert.AreEqual(explorerItemModel.CanDelete, clonedItemModel.CanDelete); Assert.AreEqual(explorerItemModel.CanDebug, clonedItemModel.CanDebug); Assert.AreEqual(explorerItemModel.CanDeploy, clonedItemModel.CanDeploy); Assert.AreEqual(explorerItemModel.CanDisconnect, clonedItemModel.CanDisconnect); Assert.AreEqual(explorerItemModel.CanEdit, clonedItemModel.CanEdit); Assert.AreEqual(explorerItemModel.CanExecute, clonedItemModel.CanExecute); Assert.AreEqual(explorerItemModel.CanRemove, clonedItemModel.CanRemove); Assert.AreEqual(explorerItemModel.CanRename, clonedItemModel.CanRename); Assert.AreEqual(explorerItemModel.CanShowDependencies, clonedItemModel.CanShowDependencies); Assert.AreEqual(explorerItemModel.CanSelectDependencies, clonedItemModel.CanSelectDependencies); Assert.AreEqual(explorerItemModel.EnvironmentId, clonedItemModel.EnvironmentId); Assert.AreEqual(explorerItemModel.Parent, clonedItemModel.Parent); Assert.AreEqual(explorerItemModel.Permissions, clonedItemModel.Permissions); Assert.AreEqual(explorerItemModel.ResourceId, clonedItemModel.ResourceId); Assert.AreEqual(explorerItemModel.ResourcePath, clonedItemModel.ResourcePath); Assert.AreEqual(explorerItemModel.ResourceType, clonedItemModel.ResourceType); Assert.AreEqual(explorerItemModel.VersionInfo, clonedItemModel.VersionInfo); }