using NUnit.Framework; using Unity.PlasticSCM.Editor; using Unity.PlasticSCM.Editor.AssetMenu; namespace Unity.PlasticSCM.Tests.Editor.AssetMenu { [TestFixture] class AssetMenuUpdaterTests { [Test] public void TestCheckoutMenuEnabledForSingleSelection() { SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo() { SelectedCount = 1, IsFileSelection = true, IsCheckedInSelection = true, IsControlledSelection = true, HasAnyAddedInSelection = false, }; Assert.IsTrue( AssetMenuUpdater.GetAvailableMenuOperations(groupInfo) .HasFlag(AssetMenuOperations.Checkout)); } [Test] public void TestCheckoutMenuEnabledForMultipleSelection() { SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo() { SelectedCount = 5, IsFileSelection = true, IsCheckedInSelection = true, IsControlledSelection = true, HasAnyAddedInSelection = false, }; Assert.IsTrue( AssetMenuUpdater.GetAvailableMenuOperations(groupInfo) .HasFlag(AssetMenuOperations.Checkout)); } [Test] public void TestCheckoutMenuDisabledForFolders() { SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo() { SelectedCount = 1, IsFileSelection = false, IsCheckedInSelection = true, IsControlledSelection = true, HasAnyAddedInSelection = false, }; Assert.IsFalse( AssetMenuUpdater.GetAvailableMenuOperations(groupInfo) .HasFlag(AssetMenuOperations.Checkout)); } [Test] public void TestCheckoutMenuDisabledForAlreadyCheckedoutFiles() { SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo() { SelectedCount = 1, IsFileSelection = true, IsCheckedInSelection = false, IsControlledSelection = true, HasAnyAddedInSelection = false, }; Assert.IsFalse( AssetMenuUpdater.GetAvailableMenuOperations(groupInfo) .HasFlag(AssetMenuOperations.Checkout)); } [Test] public void TestCheckoutMenuDisabledForNotControlledSelection() { SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo() { SelectedCount = 1, IsFileSelection = true, IsCheckedInSelection = false, IsControlledSelection = false, HasAnyAddedInSelection = false, }; Assert.IsFalse( AssetMenuUpdater.GetAvailableMenuOperations(groupInfo) .HasFlag(AssetMenuOperations.Checkout)); } [Test] public void TestDiffMenuEnabledForCheckedInFile() { SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo() { SelectedCount = 1, IsFileSelection = true, IsCheckedInSelection = true, IsControlledSelection = true, HasAnyAddedInSelection = false, }; Assert.IsTrue( AssetMenuUpdater.GetAvailableMenuOperations(groupInfo) .HasFlag(AssetMenuOperations.Diff)); } [Test] public void TestDiffMenuEnabledForCheckedOutFile() { SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo() { SelectedCount = 1, IsFileSelection = true, IsCheckedInSelection = false, IsControlledSelection = true, HasAnyAddedInSelection = false, }; Assert.IsTrue( AssetMenuUpdater.GetAvailableMenuOperations(groupInfo) .HasFlag(AssetMenuOperations.Diff)); } [Test] public void TestDiffIsDisabledForFolders() { SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo() { SelectedCount = 1, IsFileSelection = false, IsCheckedInSelection = false, IsControlledSelection = true, HasAnyAddedInSelection = false, }; Assert.IsFalse( AssetMenuUpdater.GetAvailableMenuOperations(groupInfo) .HasFlag(AssetMenuOperations.Diff)); } [Test] public void TestDiffIsDisabledForPrivateItems() { SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo() { SelectedCount = 1, IsFileSelection = true, IsCheckedInSelection = false, IsControlledSelection = false, HasAnyAddedInSelection = false, }; Assert.IsFalse( AssetMenuUpdater.GetAvailableMenuOperations(groupInfo) .HasFlag(AssetMenuOperations.Diff)); } [Test] public void TestDiffMenuDisabledForMultipleSelection() { SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo() { SelectedCount = 5, IsFileSelection = true, IsCheckedInSelection = true, IsControlledSelection = true, HasAnyAddedInSelection = false, }; Assert.IsFalse( AssetMenuUpdater.GetAvailableMenuOperations(groupInfo) .HasFlag(AssetMenuOperations.Diff)); } [Test] public void TestDiffMenuDisabledForAddedFile() { SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo() { SelectedCount = 1, IsFileSelection = true, IsCheckedInSelection = true, IsControlledSelection = true, HasAnyAddedInSelection = true, }; Assert.IsFalse( AssetMenuUpdater.GetAvailableMenuOperations(groupInfo) .HasFlag(AssetMenuOperations.Diff)); } [Test] public void TestHistoryMenuEnabledForCheckedInFile() { SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo() { SelectedCount = 1, IsFileSelection = true, IsCheckedInSelection = true, IsControlledSelection = true, HasAnyAddedInSelection = false, }; Assert.IsTrue( AssetMenuUpdater.GetAvailableMenuOperations(groupInfo) .HasFlag(AssetMenuOperations.History)); } [Test] public void TestHistoryMenuEnabledForCheckedOutFile() { SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo() { SelectedCount = 1, IsFileSelection = true, IsCheckedInSelection = false, IsControlledSelection = true, HasAnyAddedInSelection = false, }; Assert.IsTrue( AssetMenuUpdater.GetAvailableMenuOperations(groupInfo) .HasFlag(AssetMenuOperations.History)); } [Test] public void TestHistoryIsEnabledForFolders() { SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo() { SelectedCount = 1, IsFileSelection = false, IsCheckedInSelection = false, IsControlledSelection = true, HasAnyAddedInSelection = false, }; Assert.IsTrue( AssetMenuUpdater.GetAvailableMenuOperations(groupInfo) .HasFlag(AssetMenuOperations.History)); } [Test] public void TestHistoryIsDisabledForPrivateItems() { SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo() { SelectedCount = 1, IsFileSelection = true, IsCheckedInSelection = false, IsControlledSelection = false, HasAnyAddedInSelection = false, }; Assert.IsFalse( AssetMenuUpdater.GetAvailableMenuOperations(groupInfo) .HasFlag(AssetMenuOperations.History)); } [Test] public void TestHistoryMenuDisabledForMultipleSelection() { SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo() { SelectedCount = 5, IsFileSelection = true, IsCheckedInSelection = true, IsControlledSelection = true, HasAnyAddedInSelection = false, }; Assert.IsFalse( AssetMenuUpdater.GetAvailableMenuOperations(groupInfo) .HasFlag(AssetMenuOperations.History)); } [Test] public void TestHistoryMenuDisabledForAddedFile() { SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo() { SelectedCount = 1, IsFileSelection = true, IsCheckedInSelection = true, IsControlledSelection = true, HasAnyAddedInSelection = true, }; Assert.IsFalse( AssetMenuUpdater.GetAvailableMenuOperations(groupInfo) .HasFlag(AssetMenuOperations.History)); } [Test] public void TestAddMenuEnabledForPrivateFile() { SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo() { SelectedCount = 1, IsPrivateSelection = true, IsFileSelection = true, }; Assert.IsTrue( AssetMenuUpdater.GetAvailableMenuOperations(groupInfo) .HasFlag(AssetMenuOperations.Add)); } [Test] public void TestAddMenuEnabledForMultiplePrivate() { SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo() { SelectedCount = 5, IsPrivateSelection = true, IsFileSelection = true, }; Assert.IsTrue( AssetMenuUpdater.GetAvailableMenuOperations(groupInfo) .HasFlag(AssetMenuOperations.Add)); } [Test] public void TestAddMenuDisabledForControlledFile() { SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo() { SelectedCount = 1, IsPrivateSelection = false, }; Assert.IsFalse( AssetMenuUpdater.GetAvailableMenuOperations(groupInfo) .HasFlag(AssetMenuOperations.Add)); } [Test] public void TestAddMenuDisabledForDirectory() { SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo() { SelectedCount = 1, IsPrivateSelection = true, IsFileSelection = false, }; Assert.IsFalse( AssetMenuUpdater.GetAvailableMenuOperations(groupInfo) .HasFlag(AssetMenuOperations.Add)); } [Test] public void TestCheckinMenuEnabledForNonCheckedInFile() { SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo() { SelectedCount = 1, IsControlledSelection = true, IsCheckedOutSelection = true, IsFileSelection = true, }; Assert.IsTrue( AssetMenuUpdater.GetAvailableMenuOperations(groupInfo) .HasFlag(AssetMenuOperations.Checkin)); } [Test] public void TestCheckinMenuDisabledForNotControlledSelection() { SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo() { SelectedCount = 5, IsControlledSelection = false, }; Assert.IsFalse( AssetMenuUpdater.GetAvailableMenuOperations(groupInfo) .HasFlag(AssetMenuOperations.Checkin)); } [Test] public void TestCheckinMenuDisabledForNotCheckedinFile() { SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo() { SelectedCount = 1, IsControlledSelection = true, IsCheckedInSelection = true, }; Assert.IsFalse( AssetMenuUpdater.GetAvailableMenuOperations(groupInfo) .HasFlag(AssetMenuOperations.Checkin)); } [Test] public void TestCheckinMenuDisabledForDirectory() { SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo() { SelectedCount = 1, IsControlledSelection = true, IsCheckedInSelection = false, IsFileSelection = false }; Assert.IsFalse( AssetMenuUpdater.GetAvailableMenuOperations(groupInfo) .HasFlag(AssetMenuOperations.Checkin)); } [Test] public void TestUndoMenuEnabledForNonCheckedInFile() { SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo() { SelectedCount = 1, IsControlledSelection = true, IsCheckedOutSelection = true, IsFileSelection = true, }; Assert.IsTrue( AssetMenuUpdater.GetAvailableMenuOperations(groupInfo) .HasFlag(AssetMenuOperations.Undo)); } [Test] public void TestUndoMenuDisabledForNotControlledSelection() { SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo() { SelectedCount = 5, IsControlledSelection = false, }; Assert.IsFalse( AssetMenuUpdater.GetAvailableMenuOperations(groupInfo) .HasFlag(AssetMenuOperations.Undo)); } [Test] public void TestUndoMenuDisabledForNotCheckedinFile() { SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo() { SelectedCount = 1, IsControlledSelection = true, IsCheckedInSelection = true, }; Assert.IsFalse( AssetMenuUpdater.GetAvailableMenuOperations(groupInfo) .HasFlag(AssetMenuOperations.Undo)); } [Test] public void TestUndoMenuDisabledForDirectory() { SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo() { SelectedCount = 1, IsControlledSelection = true, IsCheckedInSelection = false, IsFileSelection = false, }; Assert.IsFalse( AssetMenuUpdater.GetAvailableMenuOperations(groupInfo) .HasFlag(AssetMenuOperations.Undo)); } } }