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 { /// <summary> ///A test for CreateBranchSpec ///</summary> [TestMethod()] public void CreateBranchSpecTest() { 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 = new Process(); p4d = Utilities.DeployP4TestServer(TestDir, 8, 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); BranchSpec b = new BranchSpec(); b.Id = "newDepotBranch"; b.Owner = "admin"; b.Description = "created by perforce"; b.Options = "locked"; b.ViewMap = new ViewMap(); string v0 = "//depot/main/... //depot/rel1/..."; string v1 = "//depot/main/... //depot/rel2/..."; string v2 = "//depot/dev/... //depot/main/..."; b.ViewMap.Add(v0); b.ViewMap.Add(v1); b.ViewMap.Add(v2); BranchSpec newBranchSpec = rep.CreateBranchSpec(b, null); Assert.IsNotNull(newBranchSpec); Assert.AreEqual("newDepotBranch", newBranchSpec.Id); string v3 = "\"//depot/main/a file with spaces.txt\" \"//depot/rel1/a file with spaces.txt\""; newBranchSpec.ViewMap.Add(v3); newBranchSpec = rep.UpdateBranchSpec(newBranchSpec); Assert.IsNotNull(newBranchSpec); Assert.AreEqual(newBranchSpec.ViewMap.Count, 4); } } finally { Utilities.RemoveTestServer(p4d, TestDir); } unicode = !unicode; } } /// <summary> /// A test for DeleteStream ///</summary> [TestMethod()] public void DeleteBranchSpecTest() { 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, 8, 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<BranchSpec> blist = rep.GetBranchSpecs(null); Assert.IsNotNull(blist); BranchSpec deleteTarget = new BranchSpec(); deleteTarget.Id = "MyCode->MyCode2"; rep.DeleteBranchSpec (deleteTarget, null); blist = rep.GetBranchSpecs(null); Assert.IsNull(blist); } } finally { Utilities.RemoveTestServer(p4d, TestDir); } unicode = !unicode; } } /// <summary> /// A test for LockBranchSpec ///</summary> [TestMethod()] public void LockBranchSpecTest() { 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, 8, 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); BranchSpec b = rep.GetBranchSpec("MyCode->MyCode2"); b.Locked = true; rep.UpdateBranchSpec(b); BranchSpec b2 = rep.GetBranchSpec("MyCode->MyCode2"); Assert.IsTrue(b2.Locked); b2.Locked = false; rep.UpdateBranchSpec(b2); BranchSpec b3 = rep.GetBranchSpec("MyCode->MyCode2"); Assert.IsFalse(b3.Locked); } } finally { Utilities.RemoveTestServer(p4d, TestDir); } unicode = !unicode; } } /// <summary> ///A test for GetBranchSpec ///</summary> [TestMethod()] public void GetBranchSpecTest() { 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, 8, 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); string targetBranchSpec = "MyCode->MyCode2"; BranchSpec b = rep.GetBranchSpec(targetBranchSpec); Assert.IsNotNull(b); Assert.AreEqual(targetBranchSpec, b.Id); BranchSpec b1 = rep.GetBranchSpec("StreamBranchMapWithD3", "//flow/D3", null, null); Assert.IsNotNull(b1); Assert.IsTrue(b1.ViewMap[0].Left.Path.Contains("flow/D3/...")); BranchSpec b2 = rep.GetBranchSpec("StreamBranchMapWithD3OtherParent", "//flow/D3", "//flow/D2", null); Assert.IsNotNull(b2); Assert.AreEqual(b2.ViewMap.Count, 6); Assert.IsTrue(b2.ViewMap[0].Type.Equals(MapType.Exclude)); } } finally { Utilities.RemoveTestServer(p4d, TestDir); } unicode = !unicode; } } /// <summary> ///A test for GetBranchSpecs ///</summary> [TestMethod()] public void GetBranchSpecsTest() { 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, 8, 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); Options bFlags = new Options(BranchSpecsCmdFlags.None, "admin", "", -1); IList<BranchSpec> b = rep.GetBranchSpecs(bFlags); Assert.IsNotNull(b); Assert.AreEqual(1, b.Count); Assert.AreEqual("Created by admin.\n", b[0].Description); } } finally { Utilities.RemoveTestServer(p4d, TestDir); } unicode = !unicode; } } } }
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 19640 | Liz Lam | "Forking branch Main of perforce-software-p4connect to liz_lam-p4connect." | ||
//guest/perforce_software/p4connect/main/src/P4Bridge/p4api.net-unit-test/RepositoryTest.BranchSpec.cs | |||||
#1 | 16209 | Norman Morse | Move entire source tree into "main" branch so workshop code will act correctly. | ||
//guest/perforce_software/p4connect/src/P4Bridge/p4api.net-unit-test/RepositoryTest.BranchSpec.cs | |||||
#2 | 12135 | Norman Morse |
Integrate dev branch changes into main. This code is the basiis of the 2.7 BETA release which provides Unity 5 compatibility |
||
#1 | 10940 | Norman Morse |
Inital Workshop release of P4Connect. Released under BSD-2 license |