@@ -62,98 +62,64 @@ private string GetRelativePath(string filespec, string folder)
62
62
return Uri . UnescapeDataString ( folderUri . MakeRelativeUri ( pathUri ) . ToString ( ) . Replace ( '/' , Path . DirectorySeparatorChar ) ) ;
63
63
}
64
64
65
- public void PullTestRec ( string DirUrl , string DirLocalPath )
66
- {
67
-
68
- }
69
-
70
- [ TestCleanup ]
71
- public void TestCleanup ( )
72
- {
73
- var dir = new System . IO . DirectoryInfo ( config . configData [ "RootPath" ] ) ;
74
- if ( dir . Exists ) {
75
- setAttributesNormal ( dir ) ;
76
- dir . Delete ( true ) ;
77
- dir . Create ( ) ;
78
- }
79
- }
80
65
81
- /**
82
- * Test download specific file
83
- */
84
- [ TestMethod ( ) ]
85
- public void DownloadTest ( )
86
- {
87
-
88
- List < string > files = new List < string > { "asd.txt" , "New_File.txt" } ;
89
- try {
90
- // Test downoad file
91
- foreach ( var file in files )
92
- repo . Download ( file ) ;
93
-
94
- } catch ( Exception e ) {
95
- Assert . Fail ( "Exception occured: " + e . Message + "\n " ) ;
96
- }
97
- }
98
-
99
- /**
100
- * Test pull content from remove repository
101
- */
102
- [ TestMethod ( ) ]
103
- public void PullTest ( )
66
+ public void PullTestRec ( string DirUrl , string DirLocalPath )
104
67
{
105
68
List < string > files = new List < string > ( ) ;
106
69
List < string > directories = new List < string > ( ) ;
107
70
using ( SvnClient svnClient = new SvnClient ( ) ) {
108
71
SvnInfoEventArgs info ;
109
- Uri repos = new Uri ( config . configData [ "SvnUrl" ] ) ;
72
+ Uri repos = new Uri ( DirUrl ) ;
110
73
svnClient . GetInfo ( repos , out info ) ;
111
-
74
+
112
75
Collection < SvnListEventArgs > contents ;
113
76
SvnListArgs arg = new SvnListArgs ( ) ;
114
77
arg . Revision = new SvnRevision ( info . Revision ) ; //the revision you want to check
115
78
arg . RetrieveEntries = SvnDirEntryItems . AllFieldsV15 ;
116
- if ( svnClient . GetList ( new Uri ( config . configData [ "SvnUrl" ] ) , arg , out contents ) ) {
79
+ if ( svnClient . GetList ( new Uri ( DirUrl ) , arg , out contents ) ) {
117
80
foreach ( SvnListEventArgs item in contents ) {
118
81
if ( item . Entry . NodeKind == SvnNodeKind . Directory )
119
82
directories . Add ( item . Path ) ;
120
83
else if ( item . Entry . NodeKind == SvnNodeKind . File )
121
84
files . Add ( item . Path ) ;
122
- }
85
+ }
123
86
}
124
87
}
125
88
126
89
directories = directories . Where ( s => ! string . IsNullOrWhiteSpace ( s ) ) . Distinct ( ) . ToList ( ) ;
127
90
directories . Sort ( ) ;
91
+ foreach ( var dir in directories )
92
+ PullTestRec ( Path . Combine ( DirUrl , dir ) , Path . Combine ( DirLocalPath , dir ) ) ;
93
+
128
94
files . Sort ( ) ;
129
-
95
+
130
96
repo . Pull ( ) ;
131
-
132
- string rootPath = config . configData [ "RootPath" ] ;
97
+
98
+ string rootPath = DirLocalPath ;
133
99
List < string > localFiles = Directory . GetFiles ( rootPath )
134
100
. OfType < string > ( ) . ToList ( ) ;
135
101
List < string > localDirectories = Directory . GetDirectories ( rootPath )
136
102
. OfType < string > ( ) . ToList ( ) ;
137
-
103
+
138
104
for ( int i = 0 ; i < localFiles . Count ; ++ i )
139
105
localFiles [ i ] = GetRelativePath ( localFiles [ i ] , rootPath ) ;
140
-
106
+
141
107
for ( int i = 0 ; i < localDirectories . Count ; ++ i )
142
108
localDirectories [ i ] = GetRelativePath ( localDirectories [ i ] , rootPath ) ;
143
-
109
+
144
110
localDirectories . RemoveAll ( dir => dir == ".svn" ) ;
145
111
localDirectories . Sort ( ) ;
146
112
localFiles . Sort ( ) ;
147
-
148
-
113
+
114
+
149
115
Console . WriteLine ( "Remote files" ) ;
150
- foreach ( var file in files )
116
+ foreach ( var file in files )
151
117
Console . WriteLine ( file ) ;
152
118
Console . WriteLine ( "Remote directories" ) ;
153
119
foreach ( var dir in directories )
154
120
Console . WriteLine ( dir ) ;
155
-
156
-
121
+
122
+
157
123
Console . WriteLine ( "Local files" ) ;
158
124
foreach ( var file in localFiles )
159
125
Console . WriteLine ( file ) ;
@@ -166,6 +132,46 @@ public void PullTest()
166
132
CollectionAssert . AreEqual ( localFiles , files ) ;
167
133
CollectionAssert . AreEqual ( localDirectories , directories ) ;
168
134
}
135
+
136
+ [ TestCleanup ]
137
+ public void TestCleanup ( )
138
+ {
139
+ var dir = new System . IO . DirectoryInfo ( config . configData [ "RootPath" ] ) ;
140
+ if ( dir . Exists ) {
141
+ setAttributesNormal ( dir ) ;
142
+ dir . Delete ( true ) ;
143
+ dir . Create ( ) ;
144
+ }
145
+ }
146
+
147
+
148
+ /// <summary>
149
+ /// Test download specific file
150
+ /// </summary>
151
+ [ TestMethod ( ) ]
152
+ public void DownloadTest ( )
153
+ {
154
+
155
+ List < string > files = new List < string > { "asd.txt" , "New_File.txt" } ;
156
+ try {
157
+ // Test downoad file
158
+ foreach ( var file in files )
159
+ repo . Download ( file ) ;
160
+
161
+ } catch ( Exception e ) {
162
+ Assert . Fail ( "Exception occured: " + e . Message + "\n " ) ;
163
+ }
164
+ }
165
+
166
+ /// <summary>
167
+ /// Test pull content from remove repository recursively
168
+ /// Test compare each directory or file name in remote repository with local
169
+ /// </summary>
170
+ [ TestMethod ( ) ]
171
+ public void PullTest ( )
172
+ {
173
+ PullTestRec ( config . configData [ "SvnUrl" ] , config . configData [ "RootPath" ] ) ;
174
+ }
169
175
170
176
[ TestMethod ( ) ]
171
177
public void PushTest ( )
0 commit comments