- using Perforce.P4;
- using Microsoft.VisualStudio.TestTools.UnitTesting;
- using System;
- using System.Collections.Generic;
- using System.Diagnostics;
- namespace p4api.net.unit.test
- {
- /// <summary>
- ///This is a test class for RepositoryTest and is intended
- ///to contain RepositoryTest Unit Tests
- ///</summary>
- public partial class RepositoryTest
- {
- private static string testClientSpec =
- @"# A Perforce Client Specification.
- #
- # Client: The client name.
- # Update: The date this specification was last modified.
- # Access: The date this client was last used in any way.
- # Owner: The user who created this client.
- # Host: If set, restricts access to the named host.
- # Description: A short description of the client (optional).
- # Root: The base directory of the client workspace.
- # AltRoots: Up to two alternate client workspace roots.
- # Options: Client options:
- # [no]allwrite [no]clobber [no]compress
- # [un]locked [no]modtime [no]rmdir
- # SubmitOptions:
- # submitunchanged/submitunchanged+reopen
- # revertunchanged/revertunchanged+reopen
- # leaveunchanged/leaveunchanged+reopen
- # LineEnd: Text file line endings on client: local/unix/mac/win/share.
- # View: Lines to map depot files into the client workspace.
- #
- # Use 'p4 help client' to see more about client views and options.
- Client: XP1_usr
- Update: 2010/11/29 15:30:32
- Access: 2010/11/23 08:26:17
- Owner: XP1
- Host: XPPro001
- Description:
- Created by xp1.
- Root: c:\XP1_dev
- AltRoots:
- c:\XP1_dev_A1
- c:\XP1_dev_A2
- Options: noallwrite noclobber nocompress unlocked nomodtime normdir
- SubmitOptions: submitunchanged
- LineEnd: local
- View:
- //depot/dev/xp1/... //XP1_usr/depot/dev/xp1/...
- ";
- /// <summary>
- ///A test for CreateClient
- ///</summary>
- [TestMethod()]
- public void CreateClientTest()
- {
- bool unicode = false;
- string uri = "localhost:6666";
- string user = "admin";
- string pass = string.Empty;
- string ws_client = "admin_space";
- for (int i = 0; i < 2; i++) // run once for ascii, once for unicode
- {
- Process p4d = Utilities.DeployP4TestServer(TestDir, 10, unicode);
- Server server = new Server(new ServerAddress(uri));
- try
- {
- Repository rep = new Repository(server);
- using (Connection con = rep.Connection)
- {
- con.UserName = user;
- con.Client = new Client();
- con.Client.Name = ws_client;
- bool connected = con.Connect(null);
- Assert.IsTrue(connected);
- Assert.AreEqual(con.Status, ConnectionStatus.Connected);
- Client c = new Client();
- c.Parse(testClientSpec);
- c.OwnerName = "Alice";
- MapEntry me = new MapEntry(MapType.Include,
- new DepotPath("//depot/dev/xp1/..."),
- new ClientPath("//XP1_usr/depot/dev/xp1/..."));
- c.ViewMap.Add(me);
- c.Stream = "//Rocket/GUI";
- c.StreamAtChange = "82";
- Client newGuy = rep.CreateClient(c, null);
- Assert.IsNotNull(newGuy);
- Assert.AreEqual("Alice", newGuy.OwnerName);
- //create another one without stream fields or server id
- Client b = new Client();
- b.Parse(testClientSpec);
- b.Name = "XP2_usr";
- b.OwnerName = "Alice";
- b.AltRoots = null;
- MapEntry me2 = new MapEntry(MapType.Include,
- new DepotPath("//depot/dev/xp1/..."),
- new ClientPath("//XP2_usr/depot/dev/xp1/..."));
- b.ViewMap.Clear();
- b.ViewMap.Add(me2);
- Client anotherNewGuy = rep.CreateClient(b, null);
- Assert.IsNotNull(anotherNewGuy);
- Assert.AreEqual("Alice", anotherNewGuy.OwnerName);
- // add lines with spaces in the view
- MapEntry me3 = new MapEntry(MapType.Include,
- new DepotPath("//depot/dev/xp1/file with spaces.txt"),
- new ClientPath("//XP2_usr/dev/xp1/file with spaces.txt"));
- b.ViewMap.Clear();
- b.ViewMap.Add(me3);
- anotherNewGuy = rep.UpdateClient(b);
- Assert.IsNotNull(anotherNewGuy);
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for DeleteClient
- ///</summary>
- [TestMethod()]
- public void DeleteClientTest()
- {
- bool unicode = false;
- string uri = "localhost:6666";
- string user = "admin";
- string pass = string.Empty;
- string ws_client = "admin_space";
- string targetClient = "admin_space2";
- for (int i = 0; i < 2; i++) // run once for ascii, once for unicode
- {
- Process p4d = Utilities.DeployP4TestServer(TestDir, 7, unicode);
- Server server = new Server(new ServerAddress(uri));
- try
- {
- Repository rep = new Repository(server);
- using (Connection con = rep.Connection)
- {
- con.UserName = user;
- con.Client = new Client();
- con.Client.Name = ws_client;
- bool connected = con.Connect(null);
- Assert.IsTrue(connected);
- Assert.AreEqual(con.Status, ConnectionStatus.Connected);
- Client c = new Client();
- c.Name = targetClient;
- Options uFlags = new Options(ClientCmdFlags.Force);
- rep.DeleteClient(c, uFlags);
- IList<Client> u2 = rep.GetClients(
- new Options(ClientsCmdFlags.None, null, "XP1_usr", 2, null));
- Assert.IsNull(u2);
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetClient
- ///</summary>
- [TestMethod()]
- public void GetClientTest()
- {
- bool unicode = false;
- string uri = "localhost:6666";
- string user = "admin";
- string pass = string.Empty;
- string ws_client = "admin_space";
- for (int i = 0; i < 2; i++) // run once for ascii, once for unicode
- {
- Process p4d = Utilities.DeployP4TestServer(TestDir, 6, unicode);
- Server server = new Server(new ServerAddress(uri));
- try
- {
- Repository rep = new Repository(server);
- using (Connection con = rep.Connection)
- {
- con.UserName = user;
- con.Client = new Client();
- con.Client.Name = ws_client;
- bool connected = con.Connect(null);
- Assert.IsTrue(connected);
- Assert.AreEqual(con.Status, ConnectionStatus.Connected);
- Client c = rep.GetClient("alex_space", null);
- Assert.IsNotNull(c);
- Assert.AreEqual("alex_space", c.Name);
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetClient - get streams client
- ///</summary>
- [TestMethod()]
- public void GetClientTest2()
- {
- bool unicode = false;
- string uri = "localhost:6666";
- string user = "admin";
- string pass = string.Empty;
- string ws_client = "admin_space";
- for (int i = 0; i < 2; i++) // run once for ascii, once for unicode
- {
- Process p4d = Utilities.DeployP4TestServer(TestDir, 10, unicode);
- Server server = new Server(new ServerAddress(uri));
- try
- {
- Repository rep = new Repository(server);
- using (Connection con = rep.Connection)
- {
- con.UserName = user;
- con.Client = new Client();
- con.Client.Name = ws_client;
- bool connected = con.Connect(null);
- Assert.IsTrue(connected);
- Assert.AreEqual(con.Status, ConnectionStatus.Connected);
- Client c = rep.GetClient("bob-main", null);
- Assert.IsNotNull(c);
- Assert.AreEqual("bob-main", c.Name);
- Assert.AreEqual("//Parents/MAIN", c.Stream);
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetClients
- ///</summary>
- [TestMethod()]
- public void GetClientsTest()
- {
- bool unicode = false;
- string uri = "localhost:6666";
- string user = "admin";
- string pass = string.Empty;
- string ws_client = "admin_space";
- for (int i = 0; i < 2; i++) // run once for ascii, once for unicode
- {
- Process p4d = Utilities.DeployP4TestServer(TestDir, 6, unicode);
- Server server = new Server(new ServerAddress(uri));
- try
- {
- Repository rep = new Repository(server);
- using (Connection con = rep.Connection)
- {
- con.UserName = user;
- con.Client = new Client();
- con.Client.Name = ws_client;
- bool connected = con.Connect(null);
- Assert.IsTrue(connected);
- Assert.AreEqual(con.Status, ConnectionStatus.Connected);
- IList<Client> u = rep.GetClients(
- new Options(ClientsCmdFlags.IncludeTime, null, null, 2, null));
- Assert.IsNotNull(u);
- Assert.AreEqual(2, u.Count);
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- }
- }
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 13946 | OmegaNemesis28 | Merging //guest/perforce_software/p4api.net/... to //guest/omeganemesis28/p4api.net/...... « |
10 years ago | |
//guest/perforce_software/p4api.net/p4api.net-unit-test/RepositoryTest.Client.cs | |||||
#2 | 8964 | Bill | fix line endings | 11 years ago | |
#1 | 8873 | Matt Attaway | Initial add of the P4API.NET source code | 11 years ago |