2 // Microsoft.TeamFoundation.VersionControl.Client.WorkspaceTest3
5 // Joel Reed (joelwreed@gmail.com)
7 // Copyright (C) 2007 Joel Reed
9 // Permission is hereby granted, free of charge, to any person obtaining
10 // a copy of this software and associated documentation files (the
11 // "Software"), to deal in the Software without restriction, including
12 // without limitation the rights to use, copy, modify, merge, publish,
13 // distribute, sublicense, and/or sell copies of the Software, and to
14 // permit persons to whom the Software is furnished to do so, subject to
15 // the following conditions:
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
32 using Microsoft
.TeamFoundation
.Client
;
33 using Microsoft
.TeamFoundation
.VersionControl
.Client
;
35 namespace Microsoft
.TeamFoundation
.VersionControl
.Client
37 using NUnit
.Framework
;
40 public class WorkspaceTest3
42 private string tfsUrl
;
43 private ICredentials credentials
;
44 private Workspace workspace
;
45 private VersionControlServer versionControlServer
;
48 public void FixtureSetUp()
50 tfsUrl
= Environment
.GetEnvironmentVariable("TFS_URL");
51 if (String
.IsNullOrEmpty(tfsUrl
))
53 Console
.WriteLine("Warning: Environment variable TFS_URL not set.");
54 Console
.WriteLine(" Some tests cannot be executed without TFS_URL.");
58 string username
= Environment
.GetEnvironmentVariable("TFS_USERNAME");
59 if (String
.IsNullOrEmpty(username
))
61 Console
.WriteLine("Warning: No TFS user credentials specified.");
65 credentials
= new NetworkCredential(username
,
66 Environment
.GetEnvironmentVariable("TFS_PASSWORD"),
67 Environment
.GetEnvironmentVariable("TFS_DOMAIN"));
69 // need TFS_ envvars for this test
70 if (String
.IsNullOrEmpty(tfsUrl
)) return;
71 TeamFoundationServer tfs
= new TeamFoundationServer(tfsUrl
, credentials
);
72 versionControlServer
= (VersionControlServer
) tfs
.GetService(typeof(VersionControlServer
));
74 WorkingFolder
[] folders
= new WorkingFolder
[1];
75 string serverItem
= String
.Format("$/{0}", Environment
.GetEnvironmentVariable("TFS_PROJECT"));
76 folders
[0] = new WorkingFolder(serverItem
, Environment
.CurrentDirectory
);
78 workspace
= versionControlServer
.CreateWorkspace("WorkspaceTest3_Workspace",
79 Environment
.GetEnvironmentVariable("TFS_USERNAME"),
80 "My Comment", folders
, Environment
.MachineName
);
84 public void FixtureTearDown()
90 public void Workspace_GetServerItemForLocalItem_PassValidItem()
92 string serverItem
= String
.Format("$/{0}", Environment
.GetEnvironmentVariable("TFS_PROJECT"));
93 string item1
= String
.Format("{0}/foo.txt", serverItem
);
94 string item2
= workspace
.GetServerItemForLocalItem(Path
.Combine(Environment
.CurrentDirectory
, "foo.txt"));
95 Assert
.AreEqual(item1
, item2
);
99 public void Workspace_TryGetServerItemForLocalItem_PassValidItem()
101 string serverItem
= String
.Format("$/{0}", Environment
.GetEnvironmentVariable("TFS_PROJECT"));
102 string item1
= String
.Format("{0}/foo.txt", serverItem
);
103 string item2
= workspace
.TryGetServerItemForLocalItem(Path
.Combine(Environment
.CurrentDirectory
, "foo.txt"));
104 Assert
.AreEqual(item1
, item2
);
108 [ExpectedException(typeof(ItemNotMappedException
))]
109 public void Workspace_GetServerItemForLocalItem_PassInvalidItem()
111 string serverItem
= String
.Format("$/{0}", Environment
.GetEnvironmentVariable("TFS_PROJECT"));
112 string item1
= String
.Format("{0}/foo.txt", serverItem
);
113 string item2
= workspace
.GetServerItemForLocalItem(item1
);
114 Assert
.AreEqual(item1
, item2
);
118 public void Workspace_TryGetServerItemForLocalItem_PassInvalidItem()
120 string serverItem
= String
.Format("$/{0}", Environment
.GetEnvironmentVariable("TFS_PROJECT"));
121 string item1
= String
.Format("{0}/foo.txt", serverItem
);
122 string item2
= workspace
.TryGetServerItemForLocalItem(item1
);
123 Assert
.AreEqual(null, item2
);
127 public void Workspace_GetLocalItemForServerItem_PassValidItem()
129 string serverItem
= Environment
.GetEnvironmentVariable("TFS_PROJECT");
130 string item1
= Path
.Combine(Environment
.CurrentDirectory
, "foo.txt");
131 string item2
= workspace
.GetLocalItemForServerItem(String
.Format("$/{0}/{1}", serverItem
, "foo.txt"));
132 Assert
.AreEqual(item1
, item2
);
136 public void Workspace_TryGetLocalItemForServerItem_PassValidItem()
138 string serverItem
= Environment
.GetEnvironmentVariable("TFS_PROJECT");
139 string item1
= Path
.Combine(Environment
.CurrentDirectory
, "foo.txt");
140 string item2
= workspace
.TryGetLocalItemForServerItem(String
.Format("$/{0}/{1}", serverItem
, "foo.txt"));
141 Assert
.AreEqual(item1
, item2
);
145 [ExpectedException(typeof(ItemNotMappedException
))]
146 public void Workspace_GetLocalItemForServerItem_PassInvalidItem()
148 string item1
= String
.Format("$/{0}/foo.txt", Environment
.CurrentDirectory
);
149 string item2
= workspace
.GetLocalItemForServerItem(item1
);
150 Assert
.AreEqual(item1
, item2
);
154 public void Workspace_TryGetLocalItemForServerItem_PassInvalidItem()
156 string item1
= String
.Format("$/{0}/foo.txt", Environment
.CurrentDirectory
);
157 string item2
= workspace
.TryGetLocalItemForServerItem(item1
);
158 Assert
.AreEqual(null, item2
);