AssetMenuUpdaterTests.cs 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482
  1. using NUnit.Framework;
  2. using Unity.PlasticSCM.Editor;
  3. using Unity.PlasticSCM.Editor.AssetMenu;
  4. namespace Unity.PlasticSCM.Tests.Editor.AssetMenu
  5. {
  6. [TestFixture]
  7. class AssetMenuUpdaterTests
  8. {
  9. [Test]
  10. public void TestCheckoutMenuEnabledForSingleSelection()
  11. {
  12. SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo()
  13. {
  14. SelectedCount = 1,
  15. IsFileSelection = true,
  16. IsCheckedInSelection = true,
  17. IsControlledSelection = true,
  18. HasAnyAddedInSelection = false,
  19. };
  20. Assert.IsTrue(
  21. AssetMenuUpdater.GetAvailableMenuOperations(groupInfo)
  22. .HasFlag(AssetMenuOperations.Checkout));
  23. }
  24. [Test]
  25. public void TestCheckoutMenuEnabledForMultipleSelection()
  26. {
  27. SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo()
  28. {
  29. SelectedCount = 5,
  30. IsFileSelection = true,
  31. IsCheckedInSelection = true,
  32. IsControlledSelection = true,
  33. HasAnyAddedInSelection = false,
  34. };
  35. Assert.IsTrue(
  36. AssetMenuUpdater.GetAvailableMenuOperations(groupInfo)
  37. .HasFlag(AssetMenuOperations.Checkout));
  38. }
  39. [Test]
  40. public void TestCheckoutMenuDisabledForFolders()
  41. {
  42. SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo()
  43. {
  44. SelectedCount = 1,
  45. IsFileSelection = false,
  46. IsCheckedInSelection = true,
  47. IsControlledSelection = true,
  48. HasAnyAddedInSelection = false,
  49. };
  50. Assert.IsFalse(
  51. AssetMenuUpdater.GetAvailableMenuOperations(groupInfo)
  52. .HasFlag(AssetMenuOperations.Checkout));
  53. }
  54. [Test]
  55. public void TestCheckoutMenuDisabledForAlreadyCheckedoutFiles()
  56. {
  57. SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo()
  58. {
  59. SelectedCount = 1,
  60. IsFileSelection = true,
  61. IsCheckedInSelection = false,
  62. IsControlledSelection = true,
  63. HasAnyAddedInSelection = false,
  64. };
  65. Assert.IsFalse(
  66. AssetMenuUpdater.GetAvailableMenuOperations(groupInfo)
  67. .HasFlag(AssetMenuOperations.Checkout));
  68. }
  69. [Test]
  70. public void TestCheckoutMenuDisabledForNotControlledSelection()
  71. {
  72. SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo()
  73. {
  74. SelectedCount = 1,
  75. IsFileSelection = true,
  76. IsCheckedInSelection = false,
  77. IsControlledSelection = false,
  78. HasAnyAddedInSelection = false,
  79. };
  80. Assert.IsFalse(
  81. AssetMenuUpdater.GetAvailableMenuOperations(groupInfo)
  82. .HasFlag(AssetMenuOperations.Checkout));
  83. }
  84. [Test]
  85. public void TestDiffMenuEnabledForCheckedInFile()
  86. {
  87. SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo()
  88. {
  89. SelectedCount = 1,
  90. IsFileSelection = true,
  91. IsCheckedInSelection = true,
  92. IsControlledSelection = true,
  93. HasAnyAddedInSelection = false,
  94. };
  95. Assert.IsTrue(
  96. AssetMenuUpdater.GetAvailableMenuOperations(groupInfo)
  97. .HasFlag(AssetMenuOperations.Diff));
  98. }
  99. [Test]
  100. public void TestDiffMenuEnabledForCheckedOutFile()
  101. {
  102. SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo()
  103. {
  104. SelectedCount = 1,
  105. IsFileSelection = true,
  106. IsCheckedInSelection = false,
  107. IsControlledSelection = true,
  108. HasAnyAddedInSelection = false,
  109. };
  110. Assert.IsTrue(
  111. AssetMenuUpdater.GetAvailableMenuOperations(groupInfo)
  112. .HasFlag(AssetMenuOperations.Diff));
  113. }
  114. [Test]
  115. public void TestDiffIsDisabledForFolders()
  116. {
  117. SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo()
  118. {
  119. SelectedCount = 1,
  120. IsFileSelection = false,
  121. IsCheckedInSelection = false,
  122. IsControlledSelection = true,
  123. HasAnyAddedInSelection = false,
  124. };
  125. Assert.IsFalse(
  126. AssetMenuUpdater.GetAvailableMenuOperations(groupInfo)
  127. .HasFlag(AssetMenuOperations.Diff));
  128. }
  129. [Test]
  130. public void TestDiffIsDisabledForPrivateItems()
  131. {
  132. SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo()
  133. {
  134. SelectedCount = 1,
  135. IsFileSelection = true,
  136. IsCheckedInSelection = false,
  137. IsControlledSelection = false,
  138. HasAnyAddedInSelection = false,
  139. };
  140. Assert.IsFalse(
  141. AssetMenuUpdater.GetAvailableMenuOperations(groupInfo)
  142. .HasFlag(AssetMenuOperations.Diff));
  143. }
  144. [Test]
  145. public void TestDiffMenuDisabledForMultipleSelection()
  146. {
  147. SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo()
  148. {
  149. SelectedCount = 5,
  150. IsFileSelection = true,
  151. IsCheckedInSelection = true,
  152. IsControlledSelection = true,
  153. HasAnyAddedInSelection = false,
  154. };
  155. Assert.IsFalse(
  156. AssetMenuUpdater.GetAvailableMenuOperations(groupInfo)
  157. .HasFlag(AssetMenuOperations.Diff));
  158. }
  159. [Test]
  160. public void TestDiffMenuDisabledForAddedFile()
  161. {
  162. SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo()
  163. {
  164. SelectedCount = 1,
  165. IsFileSelection = true,
  166. IsCheckedInSelection = true,
  167. IsControlledSelection = true,
  168. HasAnyAddedInSelection = true,
  169. };
  170. Assert.IsFalse(
  171. AssetMenuUpdater.GetAvailableMenuOperations(groupInfo)
  172. .HasFlag(AssetMenuOperations.Diff));
  173. }
  174. [Test]
  175. public void TestHistoryMenuEnabledForCheckedInFile()
  176. {
  177. SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo()
  178. {
  179. SelectedCount = 1,
  180. IsFileSelection = true,
  181. IsCheckedInSelection = true,
  182. IsControlledSelection = true,
  183. HasAnyAddedInSelection = false,
  184. };
  185. Assert.IsTrue(
  186. AssetMenuUpdater.GetAvailableMenuOperations(groupInfo)
  187. .HasFlag(AssetMenuOperations.History));
  188. }
  189. [Test]
  190. public void TestHistoryMenuEnabledForCheckedOutFile()
  191. {
  192. SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo()
  193. {
  194. SelectedCount = 1,
  195. IsFileSelection = true,
  196. IsCheckedInSelection = false,
  197. IsControlledSelection = true,
  198. HasAnyAddedInSelection = false,
  199. };
  200. Assert.IsTrue(
  201. AssetMenuUpdater.GetAvailableMenuOperations(groupInfo)
  202. .HasFlag(AssetMenuOperations.History));
  203. }
  204. [Test]
  205. public void TestHistoryIsEnabledForFolders()
  206. {
  207. SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo()
  208. {
  209. SelectedCount = 1,
  210. IsFileSelection = false,
  211. IsCheckedInSelection = false,
  212. IsControlledSelection = true,
  213. HasAnyAddedInSelection = false,
  214. };
  215. Assert.IsTrue(
  216. AssetMenuUpdater.GetAvailableMenuOperations(groupInfo)
  217. .HasFlag(AssetMenuOperations.History));
  218. }
  219. [Test]
  220. public void TestHistoryIsDisabledForPrivateItems()
  221. {
  222. SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo()
  223. {
  224. SelectedCount = 1,
  225. IsFileSelection = true,
  226. IsCheckedInSelection = false,
  227. IsControlledSelection = false,
  228. HasAnyAddedInSelection = false,
  229. };
  230. Assert.IsFalse(
  231. AssetMenuUpdater.GetAvailableMenuOperations(groupInfo)
  232. .HasFlag(AssetMenuOperations.History));
  233. }
  234. [Test]
  235. public void TestHistoryMenuDisabledForMultipleSelection()
  236. {
  237. SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo()
  238. {
  239. SelectedCount = 5,
  240. IsFileSelection = true,
  241. IsCheckedInSelection = true,
  242. IsControlledSelection = true,
  243. HasAnyAddedInSelection = false,
  244. };
  245. Assert.IsFalse(
  246. AssetMenuUpdater.GetAvailableMenuOperations(groupInfo)
  247. .HasFlag(AssetMenuOperations.History));
  248. }
  249. [Test]
  250. public void TestHistoryMenuDisabledForAddedFile()
  251. {
  252. SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo()
  253. {
  254. SelectedCount = 1,
  255. IsFileSelection = true,
  256. IsCheckedInSelection = true,
  257. IsControlledSelection = true,
  258. HasAnyAddedInSelection = true,
  259. };
  260. Assert.IsFalse(
  261. AssetMenuUpdater.GetAvailableMenuOperations(groupInfo)
  262. .HasFlag(AssetMenuOperations.History));
  263. }
  264. [Test]
  265. public void TestAddMenuEnabledForPrivateFile()
  266. {
  267. SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo()
  268. {
  269. SelectedCount = 1,
  270. IsPrivateSelection = true,
  271. IsFileSelection = true,
  272. };
  273. Assert.IsTrue(
  274. AssetMenuUpdater.GetAvailableMenuOperations(groupInfo)
  275. .HasFlag(AssetMenuOperations.Add));
  276. }
  277. [Test]
  278. public void TestAddMenuEnabledForMultiplePrivate()
  279. {
  280. SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo()
  281. {
  282. SelectedCount = 5,
  283. IsPrivateSelection = true,
  284. IsFileSelection = true,
  285. };
  286. Assert.IsTrue(
  287. AssetMenuUpdater.GetAvailableMenuOperations(groupInfo)
  288. .HasFlag(AssetMenuOperations.Add));
  289. }
  290. [Test]
  291. public void TestAddMenuDisabledForControlledFile()
  292. {
  293. SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo()
  294. {
  295. SelectedCount = 1,
  296. IsPrivateSelection = false,
  297. };
  298. Assert.IsFalse(
  299. AssetMenuUpdater.GetAvailableMenuOperations(groupInfo)
  300. .HasFlag(AssetMenuOperations.Add));
  301. }
  302. [Test]
  303. public void TestAddMenuDisabledForDirectory()
  304. {
  305. SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo()
  306. {
  307. SelectedCount = 1,
  308. IsPrivateSelection = true,
  309. IsFileSelection = false,
  310. };
  311. Assert.IsFalse(
  312. AssetMenuUpdater.GetAvailableMenuOperations(groupInfo)
  313. .HasFlag(AssetMenuOperations.Add));
  314. }
  315. [Test]
  316. public void TestCheckinMenuEnabledForNonCheckedInFile()
  317. {
  318. SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo()
  319. {
  320. SelectedCount = 1,
  321. IsControlledSelection = true,
  322. IsCheckedOutSelection = true,
  323. IsFileSelection = true,
  324. };
  325. Assert.IsTrue(
  326. AssetMenuUpdater.GetAvailableMenuOperations(groupInfo)
  327. .HasFlag(AssetMenuOperations.Checkin));
  328. }
  329. [Test]
  330. public void TestCheckinMenuDisabledForNotControlledSelection()
  331. {
  332. SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo()
  333. {
  334. SelectedCount = 5,
  335. IsControlledSelection = false,
  336. };
  337. Assert.IsFalse(
  338. AssetMenuUpdater.GetAvailableMenuOperations(groupInfo)
  339. .HasFlag(AssetMenuOperations.Checkin));
  340. }
  341. [Test]
  342. public void TestCheckinMenuDisabledForNotCheckedinFile()
  343. {
  344. SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo()
  345. {
  346. SelectedCount = 1,
  347. IsControlledSelection = true,
  348. IsCheckedInSelection = true,
  349. };
  350. Assert.IsFalse(
  351. AssetMenuUpdater.GetAvailableMenuOperations(groupInfo)
  352. .HasFlag(AssetMenuOperations.Checkin));
  353. }
  354. [Test]
  355. public void TestCheckinMenuDisabledForDirectory()
  356. {
  357. SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo()
  358. {
  359. SelectedCount = 1,
  360. IsControlledSelection = true,
  361. IsCheckedInSelection = false,
  362. IsFileSelection = false
  363. };
  364. Assert.IsFalse(
  365. AssetMenuUpdater.GetAvailableMenuOperations(groupInfo)
  366. .HasFlag(AssetMenuOperations.Checkin));
  367. }
  368. [Test]
  369. public void TestUndoMenuEnabledForNonCheckedInFile()
  370. {
  371. SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo()
  372. {
  373. SelectedCount = 1,
  374. IsControlledSelection = true,
  375. IsCheckedOutSelection = true,
  376. IsFileSelection = true,
  377. };
  378. Assert.IsTrue(
  379. AssetMenuUpdater.GetAvailableMenuOperations(groupInfo)
  380. .HasFlag(AssetMenuOperations.Undo));
  381. }
  382. [Test]
  383. public void TestUndoMenuDisabledForNotControlledSelection()
  384. {
  385. SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo()
  386. {
  387. SelectedCount = 5,
  388. IsControlledSelection = false,
  389. };
  390. Assert.IsFalse(
  391. AssetMenuUpdater.GetAvailableMenuOperations(groupInfo)
  392. .HasFlag(AssetMenuOperations.Undo));
  393. }
  394. [Test]
  395. public void TestUndoMenuDisabledForNotCheckedinFile()
  396. {
  397. SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo()
  398. {
  399. SelectedCount = 1,
  400. IsControlledSelection = true,
  401. IsCheckedInSelection = true,
  402. };
  403. Assert.IsFalse(
  404. AssetMenuUpdater.GetAvailableMenuOperations(groupInfo)
  405. .HasFlag(AssetMenuOperations.Undo));
  406. }
  407. [Test]
  408. public void TestUndoMenuDisabledForDirectory()
  409. {
  410. SelectedAssetGroupInfo groupInfo = new SelectedAssetGroupInfo()
  411. {
  412. SelectedCount = 1,
  413. IsControlledSelection = true,
  414. IsCheckedInSelection = false,
  415. IsFileSelection = false,
  416. };
  417. Assert.IsFalse(
  418. AssetMenuUpdater.GetAvailableMenuOperations(groupInfo)
  419. .HasFlag(AssetMenuOperations.Undo));
  420. }
  421. }
  422. }