Skip to content
This repository was archived by the owner on Dec 5, 2024. It is now read-only.

Commit e0c45f6

Browse files
Test improvements
1 parent 9626aa8 commit e0c45f6

File tree

1 file changed

+100
-46
lines changed

1 file changed

+100
-46
lines changed

src/tests/UnitTests/UI/TreeBuilderTests.cs

Lines changed: 100 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
1-
using System;
2-
using System.Collections.Generic;
1+
using System.Collections.Generic;
32
using System.Linq;
4-
using System.Text;
53
using FluentAssertions;
64
using GitHub.Unity;
75
using NCrunch.Framework;
86
using NSubstitute;
97
using NUnit.Framework;
108
using TestUtils;
11-
using UnityEngine;
129

1310
namespace UnitTests.UI
1411
{
@@ -26,19 +23,23 @@ public void CanBuildTreeForSingleItem()
2623
{
2724
InitializeEnvironment(@"c:\Project", @"c:\Project");
2825

29-
var newGitStatusEntries = new List<GitStatusEntry>() {
26+
var newGitStatusEntries = new List<GitStatusEntry> {
3027
gitObjectFactory.CreateGitStatusEntry("file1.txt", GitFileStatus.Modified)
3128
};
3229
var gitStatusEntries = new List<GitStatusEntry>();
3330

3431
var gitCommitTargets = new List<GitCommitTarget>();
3532
var foldedTreeEntries = new List<string>();
3633

37-
var stateChangeCallbackListener = NSubstitute.Substitute.For<IStateChangeCallbackListener>();
34+
var stateChangeCallbackListener = Substitute.For<IStateChangeCallbackListener>();
3835

3936
var treeRoot = TreeBuilder.BuildTreeRoot(newGitStatusEntries, gitStatusEntries, gitCommitTargets,
4037
foldedTreeEntries, stateChangeCallbackListener.StateChangeCallback);
4138

39+
gitStatusEntries.Count.Should().Be(1);
40+
gitCommitTargets.Count.Should().Be(1);
41+
foldedTreeEntries.Count.Should().Be(0);
42+
4243
var children = treeRoot.Children.ToArray();
4344
children.Length.Should().Be(1);
4445

@@ -59,24 +60,26 @@ public void CanBuildTreeForSingleItemWhenProjectNestedInRepo()
5960
{
6061
InitializeEnvironment(@"c:\Repo", @"c:\Repo\Project");
6162

62-
var newGitStatusEntries = new List<GitStatusEntry>() {
63+
var newGitStatusEntries = new List<GitStatusEntry> {
6364
gitObjectFactory.CreateGitStatusEntry("file1.txt", GitFileStatus.Modified)
6465
};
6566
var gitStatusEntries = new List<GitStatusEntry>();
6667

6768
var gitCommitTargets = new List<GitCommitTarget>();
6869
var foldedTreeEntries = new List<string>();
6970

70-
var stateChangeCallbackListener = NSubstitute.Substitute.For<IStateChangeCallbackListener>();
71+
var stateChangeCallbackListener = Substitute.For<IStateChangeCallbackListener>();
7172

7273
var treeRoot = TreeBuilder.BuildTreeRoot(newGitStatusEntries, gitStatusEntries, gitCommitTargets,
7374
foldedTreeEntries, stateChangeCallbackListener.StateChangeCallback);
7475

76+
gitStatusEntries.Count.Should().Be(1);
77+
gitCommitTargets.Count.Should().Be(1);
78+
foldedTreeEntries.Count.Should().Be(0);
79+
7580
var children = treeRoot.Children.ToArray();
7681
children.Length.Should().Be(1);
7782

78-
gitCommitTargets.Count.Should().Be(1);
79-
8083
children[0].Label.Should().Be("file1.txt");
8184
children[0].Open.Should().BeTrue();
8285
children[0].Path.Should().Be("file1.txt");
@@ -92,24 +95,26 @@ public void CanBuildTreeForSingleItemInFolder()
9295
{
9396
InitializeEnvironment(@"c:\Project", @"c:\Project");
9497

95-
var newGitStatusEntries = new List<GitStatusEntry>() {
98+
var newGitStatusEntries = new List<GitStatusEntry> {
9699
gitObjectFactory.CreateGitStatusEntry(@"folder\file1.txt", GitFileStatus.Modified)
97100
};
98101
var gitStatusEntries = new List<GitStatusEntry>();
99102

100103
var gitCommitTargets = new List<GitCommitTarget>();
101104
var foldedTreeEntries = new List<string>();
102105

103-
var stateChangeCallbackListener = NSubstitute.Substitute.For<IStateChangeCallbackListener>();
106+
var stateChangeCallbackListener = Substitute.For<IStateChangeCallbackListener>();
104107

105108
var treeRoot = TreeBuilder.BuildTreeRoot(newGitStatusEntries, gitStatusEntries, gitCommitTargets,
106109
foldedTreeEntries, stateChangeCallbackListener.StateChangeCallback);
107110

111+
gitStatusEntries.Count.Should().Be(1);
112+
gitCommitTargets.Count.Should().Be(1);
113+
foldedTreeEntries.Count.Should().Be(0);
114+
108115
var children = treeRoot.Children.ToArray();
109116
children.Length.Should().Be(1);
110117

111-
gitCommitTargets.Count.Should().Be(1);
112-
113118
children[0].Label.Should().Be("file1.txt");
114119
children[0].Open.Should().BeTrue();
115120
children[0].Path.Should().Be("file1.txt");
@@ -125,24 +130,26 @@ public void CanBuildTreeForSingleItemInFolderWhenProjectNestedInRepo()
125130
{
126131
InitializeEnvironment(@"c:\Repo", @"c:\Repo\Project");
127132

128-
var newGitStatusEntries = new List<GitStatusEntry>() {
133+
var newGitStatusEntries = new List<GitStatusEntry> {
129134
gitObjectFactory.CreateGitStatusEntry(@"folder\file1.txt", GitFileStatus.Modified)
130135
};
131136
var gitStatusEntries = new List<GitStatusEntry>();
132137

133138
var gitCommitTargets = new List<GitCommitTarget>();
134139
var foldedTreeEntries = new List<string>();
135140

136-
var stateChangeCallbackListener = NSubstitute.Substitute.For<IStateChangeCallbackListener>();
141+
var stateChangeCallbackListener = Substitute.For<IStateChangeCallbackListener>();
137142

138143
var treeRoot = TreeBuilder.BuildTreeRoot(newGitStatusEntries, gitStatusEntries, gitCommitTargets,
139144
foldedTreeEntries, stateChangeCallbackListener.StateChangeCallback);
140145

146+
gitStatusEntries.Count.Should().Be(1);
147+
gitCommitTargets.Count.Should().Be(1);
148+
foldedTreeEntries.Count.Should().Be(0);
149+
141150
var children = treeRoot.Children.ToArray();
142151
children.Length.Should().Be(1);
143152

144-
gitCommitTargets.Count.Should().Be(1);
145-
146153
children[0].Label.Should().Be("file1.txt");
147154
children[0].Open.Should().BeTrue();
148155
children[0].Path.Should().Be("file1.txt");
@@ -158,7 +165,7 @@ public void CanBuildTreeForMultipleSiblings()
158165
{
159166
InitializeEnvironment(@"c:\Project", @"c:\Project");
160167

161-
var newGitStatusEntries = new List<GitStatusEntry>() {
168+
var newGitStatusEntries = new List<GitStatusEntry> {
162169
gitObjectFactory.CreateGitStatusEntry("file1.txt", GitFileStatus.Modified),
163170
gitObjectFactory.CreateGitStatusEntry("file2.txt", GitFileStatus.Modified)
164171
};
@@ -167,16 +174,18 @@ public void CanBuildTreeForMultipleSiblings()
167174
var gitCommitTargets = new List<GitCommitTarget>();
168175
var foldedTreeEntries = new List<string>();
169176

170-
var stateChangeCallbackListener = NSubstitute.Substitute.For<IStateChangeCallbackListener>();
177+
var stateChangeCallbackListener = Substitute.For<IStateChangeCallbackListener>();
171178

172179
var treeRoot = TreeBuilder.BuildTreeRoot(newGitStatusEntries, gitStatusEntries, gitCommitTargets,
173180
foldedTreeEntries, stateChangeCallbackListener.StateChangeCallback);
174181

182+
gitStatusEntries.Count.Should().Be(2);
183+
gitCommitTargets.Count.Should().Be(2);
184+
foldedTreeEntries.Count.Should().Be(0);
185+
175186
var children = treeRoot.Children.ToArray();
176187
children.Length.Should().Be(2);
177188

178-
gitCommitTargets.Count.Should().Be(2);
179-
180189
children[0].Label.Should().Be("file1.txt");
181190
children[0].Open.Should().BeTrue();
182191
children[0].Path.Should().Be("file1.txt");
@@ -201,7 +210,7 @@ public void CanBuildTreeForMultipleSiblingsWhenProjectNestedInRepo()
201210
{
202211
InitializeEnvironment(@"c:\Repo", @"c:\Repo\Project");
203212

204-
var newGitStatusEntries = new List<GitStatusEntry>() {
213+
var newGitStatusEntries = new List<GitStatusEntry> {
205214
gitObjectFactory.CreateGitStatusEntry("file1.txt", GitFileStatus.Modified),
206215
gitObjectFactory.CreateGitStatusEntry("file2.txt", GitFileStatus.Modified)
207216
};
@@ -210,16 +219,18 @@ public void CanBuildTreeForMultipleSiblingsWhenProjectNestedInRepo()
210219
var gitCommitTargets = new List<GitCommitTarget>();
211220
var foldedTreeEntries = new List<string>();
212221

213-
var stateChangeCallbackListener = NSubstitute.Substitute.For<IStateChangeCallbackListener>();
222+
var stateChangeCallbackListener = Substitute.For<IStateChangeCallbackListener>();
214223

215224
var treeRoot = TreeBuilder.BuildTreeRoot(newGitStatusEntries, gitStatusEntries, gitCommitTargets,
216225
foldedTreeEntries, stateChangeCallbackListener.StateChangeCallback);
217226

227+
gitStatusEntries.Count.Should().Be(2);
228+
gitCommitTargets.Count.Should().Be(2);
229+
foldedTreeEntries.Count.Should().Be(0);
230+
218231
var children = treeRoot.Children.ToArray();
219232
children.Length.Should().Be(2);
220233

221-
gitCommitTargets.Count.Should().Be(2);
222-
223234
children[0].Label.Should().Be("file1.txt");
224235
children[0].Open.Should().BeTrue();
225236
children[0].Path.Should().Be("file1.txt");
@@ -244,7 +255,7 @@ public void CanBuildTreeForHierarchy()
244255
{
245256
InitializeEnvironment(@"c:\Project", @"c:\Project");
246257

247-
var newGitStatusEntries = new List<GitStatusEntry>() {
258+
var newGitStatusEntries = new List<GitStatusEntry> {
248259
gitObjectFactory.CreateGitStatusEntry("file1.txt", GitFileStatus.Modified),
249260
gitObjectFactory.CreateGitStatusEntry(@"folder1\file2.txt", GitFileStatus.Modified),
250261
gitObjectFactory.CreateGitStatusEntry(@"folder1\file3.txt", GitFileStatus.Modified),
@@ -256,16 +267,18 @@ public void CanBuildTreeForHierarchy()
256267
var gitCommitTargets = new List<GitCommitTarget>();
257268
var foldedTreeEntries = new List<string>();
258269

259-
var stateChangeCallbackListener = NSubstitute.Substitute.For<IStateChangeCallbackListener>();
270+
var stateChangeCallbackListener = Substitute.For<IStateChangeCallbackListener>();
260271

261272
var treeRoot = TreeBuilder.BuildTreeRoot(newGitStatusEntries, gitStatusEntries, gitCommitTargets,
262273
foldedTreeEntries, stateChangeCallbackListener.StateChangeCallback);
263274

275+
gitStatusEntries.Count.Should().Be(5);
276+
gitCommitTargets.Count.Should().Be(5);
277+
foldedTreeEntries.Count.Should().Be(0);
278+
264279
var children = treeRoot.Children.ToArray();
265280
children.Length.Should().Be(3);
266281

267-
gitCommitTargets.Count.Should().Be(5);
268-
269282
children[0].Label.Should().Be("file1.txt");
270283
children[0].Open.Should().BeTrue();
271284
children[0].Path.Should().Be("file1.txt");
@@ -337,7 +350,7 @@ public void CanBuildTreeForHierarchyWhenProjectNestedInRepo()
337350
{
338351
InitializeEnvironment(@"c:\Repo", @"c:\Repo\Project");
339352

340-
var newGitStatusEntries = new List<GitStatusEntry>() {
353+
var newGitStatusEntries = new List<GitStatusEntry> {
341354
gitObjectFactory.CreateGitStatusEntry("file1.txt", GitFileStatus.Modified),
342355
gitObjectFactory.CreateGitStatusEntry(@"folder\file2.txt", GitFileStatus.Modified)
343356
};
@@ -346,16 +359,18 @@ public void CanBuildTreeForHierarchyWhenProjectNestedInRepo()
346359
var gitCommitTargets = new List<GitCommitTarget>();
347360
var foldedTreeEntries = new List<string>();
348361

349-
var stateChangeCallbackListener = NSubstitute.Substitute.For<IStateChangeCallbackListener>();
362+
var stateChangeCallbackListener = Substitute.For<IStateChangeCallbackListener>();
350363

351364
var treeRoot = TreeBuilder.BuildTreeRoot(newGitStatusEntries, gitStatusEntries, gitCommitTargets,
352365
foldedTreeEntries, stateChangeCallbackListener.StateChangeCallback);
353366

367+
gitStatusEntries.Count.Should().Be(2);
368+
gitCommitTargets.Count.Should().Be(2);
369+
foldedTreeEntries.Count.Should().Be(0);
370+
354371
var children = treeRoot.Children.ToArray();
355372
children.Length.Should().Be(2);
356373

357-
gitCommitTargets.Count.Should().Be(2);
358-
359374
children[0].Path.Should().Be("file1.txt");
360375
children[0].Label.Should().Be("file1.txt");
361376
children[0].RepositoryPath.Should().Be(@"Project\file1.txt");
@@ -390,7 +405,7 @@ public void CanBuildTreeForItemAndMetafile()
390405
{
391406
InitializeEnvironment(@"c:\Project", @"c:\Project");
392407

393-
var newGitStatusEntries = new List<GitStatusEntry>() {
408+
var newGitStatusEntries = new List<GitStatusEntry> {
394409
gitObjectFactory.CreateGitStatusEntry("file1.txt", GitFileStatus.Modified),
395410
gitObjectFactory.CreateGitStatusEntry("file1.txt.meta", GitFileStatus.Modified)
396411
};
@@ -399,16 +414,18 @@ public void CanBuildTreeForItemAndMetafile()
399414
var gitCommitTargets = new List<GitCommitTarget>();
400415
var foldedTreeEntries = new List<string>();
401416

402-
var stateChangeCallbackListener = NSubstitute.Substitute.For<IStateChangeCallbackListener>();
417+
var stateChangeCallbackListener = Substitute.For<IStateChangeCallbackListener>();
403418

404419
var treeRoot = TreeBuilder.BuildTreeRoot(newGitStatusEntries, gitStatusEntries, gitCommitTargets,
405420
foldedTreeEntries, stateChangeCallbackListener.StateChangeCallback);
406421

422+
gitStatusEntries.Count.Should().Be(2);
423+
gitCommitTargets.Count.Should().Be(2);
424+
foldedTreeEntries.Count.Should().Be(0);
425+
407426
var children = treeRoot.Children.ToArray();
408427
children.Length.Should().Be(1);
409428

410-
gitCommitTargets.Count.Should().Be(2);
411-
412429
children[0].Label.Should().Be("file1.txt");
413430
children[0].Open.Should().BeTrue();
414431
children[0].Path.Should().Be("file1.txt");
@@ -438,22 +455,29 @@ public void CanUpdateTreeForSingleItem()
438455
{
439456
InitializeEnvironment(@"c:\Project", @"c:\Project");
440457

441-
var gitStatusEntriesGen0 = new List<GitStatusEntry>();
458+
var gitStatusEntries = new List<GitStatusEntry>();
442459

443-
var gitStatusEntriesGen1 = new List<GitStatusEntry>() {
444-
gitObjectFactory.CreateGitStatusEntry("file1.txt", GitFileStatus.Modified)
460+
var gitStatusEntriesGen1 = new List<GitStatusEntry> {
461+
gitObjectFactory.CreateGitStatusEntry("file1.txt", GitFileStatus.Modified),
462+
gitObjectFactory.CreateGitStatusEntry("file2.txt", GitFileStatus.Modified)
445463
};
446464

447465
var gitCommitTargets = new List<GitCommitTarget>();
448466
var foldedTreeEntries = new List<string>();
449467

450-
var stateChangeCallbackListener = NSubstitute.Substitute.For<IStateChangeCallbackListener>();
468+
var stateChangeCallbackListener = Substitute.For<IStateChangeCallbackListener>();
451469

452-
var treeRootGen1 = TreeBuilder.BuildTreeRoot(gitStatusEntriesGen1, gitStatusEntriesGen0, gitCommitTargets,
470+
var treeRootGen1 = TreeBuilder.BuildTreeRoot(gitStatusEntriesGen1, gitStatusEntries, gitCommitTargets,
453471
foldedTreeEntries, stateChangeCallbackListener.StateChangeCallback);
454472

473+
gitStatusEntries.Count.Should().Be(2);
474+
gitCommitTargets.Count.Should().Be(2);
475+
foldedTreeEntries.Count.Should().Be(0);
476+
455477
var fileTreeNodesGen1 = treeRootGen1.Children.ToArray();
456478

479+
fileTreeNodesGen1.Length.Should().Be(2);
480+
457481
fileTreeNodesGen1[0].Label.Should().Be("file1.txt");
458482
fileTreeNodesGen1[0].Open.Should().BeTrue();
459483
fileTreeNodesGen1[0].Path.Should().Be("file1.txt");
@@ -462,18 +486,48 @@ public void CanUpdateTreeForSingleItem()
462486
fileTreeNodesGen1[0].Target.Should().Be(gitCommitTargets[0]);
463487
fileTreeNodesGen1[0].Children.Should().BeEmpty();
464488

489+
fileTreeNodesGen1[1].Label.Should().Be("file2.txt");
490+
fileTreeNodesGen1[1].Open.Should().BeTrue();
491+
fileTreeNodesGen1[1].Path.Should().Be("file2.txt");
492+
fileTreeNodesGen1[1].RepositoryPath.Should().Be("file2.txt");
493+
fileTreeNodesGen1[1].State.Should().Be(CommitState.None);
494+
fileTreeNodesGen1[1].Target.Should().Be(gitCommitTargets[1]);
495+
fileTreeNodesGen1[1].Children.Should().BeEmpty();
496+
465497
fileTreeNodesGen1[0].State = CommitState.All;
466498

467499
stateChangeCallbackListener.ReceivedWithAnyArgs(1).StateChangeCallback(Arg.Any<FileTreeNode>());
468500
stateChangeCallbackListener.ClearReceivedCalls();
469501

470-
var gitStatusEntriesGen2 = new List<GitStatusEntry>() {
502+
var gitStatusEntriesGen2 = new List<GitStatusEntry> {
471503
gitObjectFactory.CreateGitStatusEntry("file1.txt", GitFileStatus.Modified),
472-
gitObjectFactory.CreateGitStatusEntry("file2.txt", GitFileStatus.Modified)
504+
gitObjectFactory.CreateGitStatusEntry("file3.txt", GitFileStatus.Modified)
473505
};
474506

475-
var treeRootGen2 = TreeBuilder.BuildTreeRoot(gitStatusEntriesGen2, gitStatusEntriesGen1, gitCommitTargets,
507+
var treeRootGen2 = TreeBuilder.BuildTreeRoot(gitStatusEntriesGen2, gitStatusEntries, gitCommitTargets,
476508
foldedTreeEntries, stateChangeCallbackListener.StateChangeCallback);
509+
510+
gitStatusEntries.Count.Should().Be(2);
511+
512+
var fileTreeNodesGen2 = treeRootGen2.Children.ToArray();
513+
514+
fileTreeNodesGen1.Length.Should().Be(2);
515+
516+
fileTreeNodesGen2[0].Label.Should().Be("file1.txt");
517+
fileTreeNodesGen2[0].Open.Should().BeTrue();
518+
fileTreeNodesGen2[0].Path.Should().Be("file1.txt");
519+
fileTreeNodesGen2[0].RepositoryPath.Should().Be("file1.txt");
520+
fileTreeNodesGen2[0].State.Should().Be(CommitState.All);
521+
fileTreeNodesGen2[0].Target.Should().Be(gitCommitTargets[0]);
522+
fileTreeNodesGen2[0].Children.Should().BeEmpty();
523+
524+
fileTreeNodesGen2[1].Label.Should().Be("file3.txt");
525+
fileTreeNodesGen2[1].Open.Should().BeTrue();
526+
fileTreeNodesGen2[1].Path.Should().Be("file3.txt");
527+
fileTreeNodesGen2[1].RepositoryPath.Should().Be("file3.txt");
528+
fileTreeNodesGen2[1].State.Should().Be(CommitState.None);
529+
fileTreeNodesGen2[1].Target.Should().Be(gitCommitTargets[1]);
530+
fileTreeNodesGen2[1].Children.Should().BeEmpty();
477531
}
478532

479533
private void InitializeEnvironment(string repositoryPath, string projectPath)

0 commit comments

Comments
 (0)