- 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 all RepositoryTest Unit Tests
- ///</summary>
- [TestClass()]
- public partial class RepositoryTest
- {
- String TestDir = "c:\\MyTestDir";
- private TestContext testContextInstance;
- /// <summary>
- ///Gets or sets the test context which provides
- ///information about and functionality for the current test run.
- ///</summary>
- public TestContext TestContext
- {
- get
- {
- return testContextInstance;
- }
- set
- {
- testContextInstance = value;
- }
- }
- #region Additional test attributes
- //
- //You can use the following additional attributes as you write your tests:
- //
- //Use ClassInitialize to run code before running the first test in the class
- //[ClassInitialize()]
- //public static void MyClassInitialize(TestContext testContext)
- //{
- //}
- //
- //Use ClassCleanup to run code after all tests in a class have run
- //[ClassCleanup()]
- //public static void MyClassCleanup()
- //{
- //}
- //
- //Use TestInitialize to run code before running each test
- //[TestInitialize()]
- //public void MyTestInitialize()
- //{
- //}
- //
- //Use TestCleanup to run code after each test has run
- //[TestCleanup()]
- //public void MyTestCleanup()
- //{
- //}
- //
- #endregion
- /// <summary>
- ///A test for GetDepotFiles
- ///</summary>
- [TestMethod()]
- [DeploymentItem("p4api.net.dll")]
- public void GetDepotFilesTest()
- {
- 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, 2, 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);
- FileSpec fs = new FileSpec(new DepotPath("//depot/..."), null);
- List<FileSpec> lfs = new List<FileSpec>();
- lfs.Add(fs);
- IList<FileSpec> target = rep.GetDepotFiles(lfs, null);
- Assert.IsNotNull(target);
- bool foundit = false;
- foreach (FileSpec f in target)
- {
- if (f.DepotPath.Path == "//depot/MyCode/ReadMe.txt")
- {
- foundit = true;
- break;
- }
- }
- Assert.IsTrue(foundit);
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetDepotFilesInUnloaded
- ///</summary>
- [TestMethod()]
- [DeploymentItem("p4api.net.dll")]
- public void GetDepotFilesInUloadedTest()
- {
- 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, 2, 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);
- Depot depot = new Depot("Unloaded",DepotType.Unload,DateTime.Now,null,"admin",
- "desc",".p4s","Unloaded/...",null);
- depot.Id = "Unloaded";
- depot.Type = DepotType.Unload;
- rep.CreateDepot(depot);
- Options options = new Options();
- options["-c"] = "admin_space2";
- P4Command cmd = new P4Command(con, "unload", true, null);
- try
- {
- cmd.Run(options);
- }
- catch
- {
- }
- GetDepotFilesCmdOptions opts =
- new GetDepotFilesCmdOptions(GetDepotFilesCmdFlags.InUnloadDepot, 0);
- FileSpec fs = new FileSpec(new DepotPath("//Unloaded/..."), null);
- List<FileSpec> lfs = new List<FileSpec>();
- lfs.Add(fs);
- IList<FileSpec> target = rep.GetDepotFiles(lfs,opts);
- Assert.IsNotNull(target);
- Assert.AreEqual(target.Count, 1);
- Assert.AreEqual(target[0].DepotPath.Path,
- "//Unloaded/client/admin_space2.ckp");
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetDepotFilesInArchiveTest
- ///</summary>
- [TestMethod()]
- [DeploymentItem("p4api.net.dll")]
- public void GetDepotFilesInArchiveTest()
- {
- 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, 2, 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);
- Depot depot = new Depot("Archive", DepotType.Archive, DateTime.Now, null, "admin",
- "desc", ".p4s", "Archive/...", null);
- depot.Id = "Archive";
- depot.Type = DepotType.Archive;
- rep.CreateDepot(depot);
- Options options = new Options();
- options["-D"] = "Archive";
- P4Command cmd = new P4Command(con, "archive", true, "//depot/TheirCode/...");
- try
- {
- cmd.Run(options);
- }
- catch (P4Exception e)
- {
- }
- GetDepotFilesCmdOptions opts =
- new GetDepotFilesCmdOptions(GetDepotFilesCmdFlags.InArchiveDepots, 0);
- FileSpec fs = new FileSpec(new DepotPath("//Archive/..."), null);
- List<FileSpec> lfs = new List<FileSpec>();
- lfs.Add(fs);
- IList<FileSpec> target = rep.GetDepotFiles(lfs, opts);
- Assert.IsNotNull(target);
- Assert.AreEqual(target[0].DepotPath.Path,
- "//Archive/depot/TheirCode/Silly.bmp");
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetDepotFilesInRangeTest
- ///</summary>
- [TestMethod()]
- [DeploymentItem("p4api.net.dll")]
- public void GetDepotFilesInRangeTest()
- {
- 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, 2, 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);
- GetDepotFilesCmdOptions opts =
- new GetDepotFilesCmdOptions(GetDepotFilesCmdFlags.AllRevisions, 0);
- FileSpec fs = new FileSpec(new DepotPath("//depot/..."),
- new VersionRange(new ChangelistIdVersion(1), new ChangelistIdVersion(3)));
- List<FileSpec> lfs = new List<FileSpec>();
- lfs.Add(fs);
- IList<FileSpec> target = rep.GetDepotFiles(lfs, opts);
- Assert.IsNotNull(target);
- if (!unicode)
- {
- Assert.AreEqual(target.Count, 5);
- Assert.AreEqual(target[0].DepotPath.Path,
- "//depot/MyCode/pup.txt");
- }
- else
- {
- Assert.AreEqual(target.Count, 3);
- Assert.AreEqual(target[0].DepotPath.Path,
- "//depot/MyCode/ReadMe.txt");
- }
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetDepotFilesNotDeletedTest
- ///</summary>
- [TestMethod()]
- [DeploymentItem("p4api.net.dll")]
- public void GetDepotFilesNotDeletedTest()
- {
- 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, 2, 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);
- // schedule file for delete
- FileSpec toFile = new FileSpec(new DepotPath("//depot/MyCode/ReadMe.txt"));
- Options deleteOptions = new Options(DeleteFilesCmdFlags.None, -1);
- IList<FileSpec> oldfiles = con.Client.DeleteFiles(deleteOptions, toFile);
- Assert.AreEqual(1, oldfiles.Count);
- //submit file
- SubmitCmdOptions submitOpts = new SubmitCmdOptions(SubmitFilesCmdFlags.None, 0, null,
- "submitted", null);
- rep.Connection.Client.SubmitFiles(submitOpts, toFile);
- FileSpec fs = new FileSpec(new DepotPath("//depot/..."), null);
- GetDepotFilesCmdOptions opts =
- new GetDepotFilesCmdOptions(GetDepotFilesCmdFlags.NotDeleted, 0);
- List<FileSpec> lfs = new List<FileSpec>();
- lfs.Add(fs);
- IList<FileSpec> target = rep.GetDepotFiles(lfs, opts);
- Assert.IsNotNull(target);
- if (!unicode)
- {
- Assert.AreEqual(target.Count, 7);
- Assert.AreEqual(target[0].DepotPath.Path,
- "//depot/MyCode/pup.txt");
- }
- else
- {
- Assert.AreEqual(target.Count, 11);
- Assert.AreEqual(target[0].DepotPath.Path,
- "//depot/Modifiers/ReadMe.txt");
- }
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetOpenedFiles
- ///</summary>
- [TestMethod()]
- public void GetOpenedFilesTest()
- {
- 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,12, 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);
- FileSpec fs = new FileSpec(new DepotPath("//depot/..."), null);
- List<FileSpec> lfs = new List<FileSpec>();
- lfs.Add(fs);
- IList<File> target = rep.GetOpenedFiles(lfs, null);
- Assert.IsNotNull(target);
- bool foundit = false;
- foreach (File f in target)
- {
- if (f.DepotPath.Path == "//depot/MyCode/NewFile.txt")
- {
- foundit = true;
- break;
- }
- }
- Assert.IsTrue(foundit);
- Options opts = new Options();
- opts["-c"] = "default";
- opts["-C"] = con.Client.Name;
- target = rep.GetOpenedFiles(null,opts);
- Assert.IsNotNull(target);
- if (!unicode)
- {
- Assert.AreEqual(target.Count, 3);
- }
- else
- {
- Assert.AreEqual(target.Count, 7);
- }
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetOpenedFilesShortOutput
- ///</summary>
- [TestMethod()]
- public void GetOpenedFilesShortOutputTest()
- {
- 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, 12, 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);
- FileSpec fs = new FileSpec(new DepotPath("//..."), null);
- List<FileSpec> lfs = new List<FileSpec>();
- lfs.Add(fs);
- // use -a
- GetOpenedFilesOptions opts = new GetOpenedFilesOptions(GetOpenedFilesCmdFlags.AllClients,
- null, null, null, 0);
- IList<File> target = new List<File>();
- target = rep.GetOpenedFiles(lfs, opts);
- // file type is returned with p4 opened -a
- Assert.IsNotNull(target[0].Type);
- // use -a -s
- opts = new GetOpenedFilesOptions(GetOpenedFilesCmdFlags.ShortOutput |
- GetOpenedFilesCmdFlags.AllClients, null, null, null, 0);
- target = rep.GetOpenedFiles(lfs, opts);
- // file type is not returned with p4 opened -a -s
- Assert.IsNull(target[0].Type);
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetOpenedFilesExclusive
- ///</summary>
- [TestMethod()]
- public void GetOpenedFilesExclusiveTest()
- {
- // TODO: add distributed environment to utilities setup
- // in order to test the success path of this operation
- 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, 12, 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);
- FileSpec fs = new FileSpec(new DepotPath("//..."), null);
- List<FileSpec> lfs = new List<FileSpec>();
- lfs.Add(fs);
- // open a file with exclusive lock
- FileSpec toOpen = new FileSpec(new DepotPath("//depot/MyCode/ReadMe.txt"),
- null, null, null);
- EditCmdOptions editOpts = new EditCmdOptions(EditFilesCmdFlags.None, 0,
- new FileType(BaseFileType.Text, FileTypeModifier.ExclusiveOpen));
- rep.Connection.Client.EditFiles(editOpts, toOpen);
- GetOpenedFilesOptions opts = new GetOpenedFilesOptions(GetOpenedFilesCmdFlags.Exclusive,
- null, null, null, 0);
- IList<File> target = new List<File>();
- try
- {
- target = rep.GetOpenedFiles(lfs, opts);
- }
- // p4 opened -x will fail on a non-distributed environment
- catch (P4Exception ex)
- {
- Assert.AreEqual(805379732, ex.ErrorCode,
- "This command is only supported in a distributed configuration.\n");
- }
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetFileMetadata
- ///</summary>
- [TestMethod()]
- public void GetFileMetadataTest()
- {
- 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);
- FileSpec fs = new FileSpec(new DepotPath("//depot/MyCode2/ReadMe.txt"), null);
- List<FileSpec> lfs = new List<FileSpec>();
- lfs.Add(fs);
- Options ops = new Options();
- ops["-Oa"] = null;
- DepotPath movedfile = null;
- bool ismapped = false;
- bool shelved = false;
- FileAction headaction = FileAction.None;
- int headchange = -1;
- int headrev = -1;
- FileType headtype = new FileType("none");
- DateTime headtime = DateTime.MinValue;
- DateTime headmodtime = DateTime.MinValue;
- int movedrev = -1;
- int haverev = -1;
- string desc = null;
- string digest = null;
- int filesize = -1;
- FileAction action = FileAction.None;
- FileType type = null;
- string actionowner = null;
- int change = -1;
- bool resolved = false;
- bool unresolved = false;
- bool reresolvable = false;
- int otheropen = -1;
- List<string> otheropenuserclients = new List<string>();
- bool otherlock = false;
- List<string> otherlockuserclients = new List<string>();
- List<FileAction> otheractions = new List<FileAction>();
- List<int> otherchanges = new List<int>();
- bool ourlock = false;
- List<FileResolveAction> resolverecords = new List<FileResolveAction>();
- Dictionary<string, object> attributes = null;
- Dictionary<string, object> attributedigests = null;
- FileMetaData fmd = new FileMetaData
- (
- movedfile,
- ismapped,
- shelved,
- headaction,
- headchange,
- headrev,
- headtype,
- headtime,
- headmodtime,
- movedrev,
- haverev,
- desc,
- digest,
- filesize,
- action,
- type,
- actionowner,
- change,
- resolved,
- unresolved,
- reresolvable,
- otheropen,
- otheropenuserclients,
- otherlock,
- otherlockuserclients,
- otheractions,
- otherchanges,
- ourlock,
- resolverecords,
- attributes,
- attributedigests,
- null, null, null, -1, null
- );
- IList<FileMetaData> target = rep.GetFileMetaData(lfs, ops);
- int expected = 2;
- int actual = target[0].HaveRev;
- Assert.AreEqual(expected, actual);
- if (unicode == false)
- expected = 11;
- else
- expected = 10;
- actual = target[0].HeadChange;
- Assert.AreEqual(expected, actual);
- bool isresolved = false;
- bool actualres = target[0].Resolved;
- Assert.AreEqual(isresolved, actualres);
- bool foundit = false;
- foreach (FileMetaData f in target)
- {
- if (f.Attributes.ContainsKey("1st")
- &&
- f.Attributes.ContainsValue("9999")
- )
- {
- foundit = true;
- break;
- }
- }
- Assert.IsTrue(foundit);
- foundit = false;
- foreach (FileMetaData f in target)
- {
- if (f.OtherOpenUserClients.Contains("Alice@alice_space")
- |
- f.OtherOpenUserClients.Contains("alice@alice_space"))
- {
- foundit = true;
- break;
- }
- }
- Assert.IsTrue(foundit);
- foundit = false;
- foreach (FileMetaData f in target)
- {
- if (f.ActionOwner.Contains("admin"))
- {
- foundit = true;
- break;
- }
- }
- Assert.IsTrue(foundit);
- foundit = false;
- foreach (FileMetaData f in target)
- {
- if (f.Action == FileAction.Integrate)
- {
- foundit = true;
- break;
- }
- }
- Assert.IsTrue(foundit);
- // a test for the obsoleted options
- ops = new GetFileMetaDataCmdOptions(GetFileMetadataCmdFlags.Opened,
- null, null, 0, null, null);
- // if the options were not obsoleted correctly
- // they would be returned with a count of 0
- // and contain no flags or arguements
- Assert.AreEqual(ops.Count, 1);
- Assert.IsTrue(ops.ContainsKey("-Ro"));
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetFileMetaDataFileCount
- ///</summary>
- [TestMethod()]
- [DeploymentItem("p4api.net.dll")]
- public void GetFileMetaDataFileCountTest()
- {
- 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, 2, 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);
- GetFileMetaDataCmdOptions opts =
- new GetFileMetaDataCmdOptions(GetFileMetadataCmdFlags.DateSort,
- null, null, 1, null, null, null);
- FileSpec fs = new FileSpec(new DepotPath("//Depot/..."), null);
- IList<FileMetaData> target = rep.GetFileMetaData(opts, fs);
- Assert.IsNotNull(target);
- Assert.AreEqual(target.Count, 1);
- if (unicode)
- {
- Assert.AreEqual(target[0].TotalFileCount, 14);
- }
- else
- {
- Assert.AreEqual(target[0].TotalFileCount, 9);
- }
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetFileMetaDataInUnloaded
- ///</summary>
- [TestMethod()]
- [DeploymentItem("p4api.net.dll")]
- public void GetFileMetaDataInUnloadedTest()
- {
- 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, 2, 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);
- Depot depot = new Depot("Unloaded", DepotType.Unload, DateTime.Now, null, "admin",
- "desc", ".p4s", "Unloaded/...", null);
- depot.Id = "Unloaded";
- depot.Type = DepotType.Unload;
- rep.CreateDepot(depot);
- Options options = new Options();
- options["-c"] = "admin_space2";
- P4Command cmd = new P4Command(con, "unload", true, null);
- try
- {
- cmd.Run(options);
- }
- catch
- {
- }
- GetFileMetaDataCmdOptions opts = new GetFileMetaDataCmdOptions(GetFileMetadataCmdFlags.InUnloadDepot,
- null, null, 0, null, null, null);
- FileSpec fs = new FileSpec(new DepotPath("//Unloaded/..."), null);
- IList<FileMetaData> target = rep.GetFileMetaData(opts,fs);
- Assert.IsNotNull(target);
- Assert.AreEqual(target.Count, 1);
- Assert.AreEqual(target[0].DepotPath.Path,
- "//Unloaded/client/admin_space2.ckp");
- Assert.IsTrue(target[0].IsInDepot);
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetFileMetaDataAttribute
- ///</summary>
- [TestMethod()]
- [DeploymentItem("p4api.net.dll")]
- public void GetFileMetaDataAttributeTest()
- {
- 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, 13, 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);
- FileSpec fs = new FileSpec(new DepotPath("//depot/MyCode/ReadMe.txt"), null);
- rep.Connection.Client.EditFiles(null, fs);
- Options options = new Options();
- options["-n"] = "attribute";
- options["-v"] = "1024";
- P4Command cmd = new P4Command(con, "attribute", true, "//depot/MyCode/ReadMe.txt");
- try
- {
- cmd.Run(options);
- }
- catch
- {
- }
- SubmitCmdOptions submitOpts = new SubmitCmdOptions(SubmitFilesCmdFlags.None, 0, null,
- "submitted", null);
- rep.Connection.Client.SubmitFiles(submitOpts, fs);
- GetFileMetaDataCmdOptions opts = new GetFileMetaDataCmdOptions(GetFileMetadataCmdFlags.Attributes,
- null, null, 0, null, null, null);
- IList<FileMetaData> target = rep.GetFileMetaData(opts, fs);
- Assert.IsNotNull(target);
- Assert.AreEqual(target.Count, 1);
- Assert.IsTrue(target[0].Attributes.ContainsKey("attribute"));
- object value;
- target[0].Attributes.TryGetValue("attribute", out value);
- Assert.AreEqual(value,"1024");
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetFileMetaDataAttributeDigest
- ///</summary>
- [TestMethod()]
- [DeploymentItem("p4api.net.dll")]
- public void GetFileMetaDataAttributeDigestTest()
- {
- 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, 13, 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);
- FileSpec fs = new FileSpec(new DepotPath("//depot/MyCode/ReadMe.txt"), null);
- rep.Connection.Client.EditFiles(null, fs);
- Options options = new Options();
- options["-n"] = "attribute";
- options["-v"] = "1024";
- P4Command cmd = new P4Command(con, "attribute", true, "//depot/MyCode/ReadMe.txt");
- try
- {
- cmd.Run(options);
- }
- catch
- {
- }
- options["-n"] = "anotherone";
- options["-v"] = "1024";
- cmd = new P4Command(con, "attribute", true, "//depot/MyCode/ReadMe.txt");
- try
- {
- cmd.Run(options);
- }
- catch
- {
- }
- SubmitCmdOptions submitOpts = new SubmitCmdOptions(SubmitFilesCmdFlags.None, 0, null,
- "submitted", null);
- rep.Connection.Client.SubmitFiles(submitOpts, fs);
- GetFileMetaDataCmdOptions opts = new GetFileMetaDataCmdOptions(GetFileMetadataCmdFlags.AttributeDigest,
- null, null, 0, null, null, null);
- IList<FileMetaData> target = rep.GetFileMetaData(opts, fs);
- Assert.IsNotNull(target);
- Assert.AreEqual(target.Count, 1);
- Assert.IsTrue(target[0].AttributeDigests.ContainsKey("attribute"));
- object value;
- target[0].AttributeDigests.TryGetValue("attribute", out value);
- Assert.AreEqual(value, "021BBC7EE20B71134D53E20206BD6FEB");
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetFileMetaDataAttributeHex
- ///</summary>
- [TestMethod()]
- [DeploymentItem("p4api.net.dll")]
- public void GetFileMetaDataAttributeHexTest()
- {
- 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, 13, 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);
- FileSpec fs = new FileSpec(new DepotPath("//depot/MyCode/ReadMe.txt"), null);
- rep.Connection.Client.EditFiles(null, fs);
- Options options = new Options();
- options["-n"] = "attribute";
- options["-v"] = "1024";
- P4Command cmd = new P4Command(con, "attribute", true, "//depot/MyCode/ReadMe.txt");
- try
- {
- cmd.Run(options);
- }
- catch
- {
- }
- SubmitCmdOptions submitOpts = new SubmitCmdOptions(SubmitFilesCmdFlags.None, 0, null,
- "submitted", null);
- rep.Connection.Client.SubmitFiles(submitOpts, fs);
- GetFileMetaDataCmdOptions opts = new GetFileMetaDataCmdOptions(GetFileMetadataCmdFlags.HexAttributes,
- null, null, 0, null, null, null);
- IList<FileMetaData> target = rep.GetFileMetaData(opts, fs);
- Assert.IsNotNull(target);
- Assert.AreEqual(target.Count, 1);
- Assert.IsTrue(target[0].Attributes.ContainsKey("attribute"));
- object value;
- target[0].Attributes.TryGetValue("attribute", out value);
- Assert.AreEqual(value, "31303234");
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetFileMetaDataAttributePattern
- ///</summary>
- [TestMethod()]
- [DeploymentItem("p4api.net.dll")]
- public void GetFileMetaDataAttributePatternTest()
- {
- 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, 13, 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);
- FileSpec fs = new FileSpec(new DepotPath("//depot/MyCode/ReadMe.txt"), null);
- rep.Connection.Client.EditFiles(null, fs);
- Options options = new Options();
- options["-n"] = "attribute";
- options["-v"] = "1024";
- P4Command cmd = new P4Command(con, "attribute", true, "//depot/MyCode/ReadMe.txt");
- try
- {
- cmd.Run(options);
- }
- catch
- {
- }
- options["-n"] = "anotherone";
- options["-v"] = "1024";
- cmd = new P4Command(con, "attribute", true, "//depot/MyCode/ReadMe.txt");
- try
- {
- cmd.Run(options);
- }
- catch
- {
- }
- options["-n"] = "anotheroney";
- options["-v"] = "1024";
- cmd = new P4Command(con, "attribute", true, "//depot/MyCode/ReadMe.txt");
- try
- {
- cmd.Run(options);
- }
- catch
- {
- }
- SubmitCmdOptions submitOpts = new SubmitCmdOptions(SubmitFilesCmdFlags.None, 0, null,
- "submitted", null);
- rep.Connection.Client.SubmitFiles(submitOpts, fs);
- GetFileMetaDataCmdOptions opts = new GetFileMetaDataCmdOptions(GetFileMetadataCmdFlags.Attributes,
- null, null, 0, null, null, "anotherone");
- IList<FileMetaData> target = rep.GetFileMetaData(opts, fs);
- Assert.IsNotNull(target);
- Assert.AreEqual(target.Count, 1);
- Assert.IsTrue(target[0].Attributes.ContainsKey("anotherone"));
- object value;
- target[0].Attributes.TryGetValue("anotherone", out value);
- Assert.AreEqual(value, "1024");
- Assert.AreEqual(target[0].Attributes.Count, 1);
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetFileMetaDataAttributePropagate
- ///</summary>
- [TestMethod()]
- [DeploymentItem("p4api.net.dll")]
- public void GetFileMetaDataAttributePropagateTest()
- {
- 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, 13, 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);
- FileSpec fs = new FileSpec(new DepotPath("//depot/MyCode/ReadMe.txt"), null);
- rep.Connection.Client.EditFiles(null, fs);
- Options options = new Options();
- options["-n"] = "attribute";
- options["-v"] = "1024";
- P4Command cmd = new P4Command(con, "attribute", true, "//depot/MyCode/ReadMe.txt");
- try
- {
- cmd.Run(options);
- }
- catch
- {
- }
- options["-p"] = null;
- options["-n"] = "anotherone";
- options["-v"] = "1024";
- cmd = new P4Command(con, "attribute", true, "//depot/MyCode/ReadMe.txt");
- try
- {
- cmd.Run(options);
- }
- catch
- {
- }
- SubmitCmdOptions submitOpts = new SubmitCmdOptions(SubmitFilesCmdFlags.None, 0, null,
- "submitted", null);
- rep.Connection.Client.SubmitFiles(submitOpts, fs);
- GetFileMetaDataCmdOptions opts = new GetFileMetaDataCmdOptions(GetFileMetadataCmdFlags.Attributes,
- null, null, 0, null, null, null);
- // get filemetadata for the file with a propagated attribute
- IList<FileMetaData> target = rep.GetFileMetaData(opts, fs);
- Assert.IsNotNull(target);
- Assert.AreEqual(target.Count, 1);
- Assert.IsTrue(target[0].AttributesProp.ContainsKey("anotherone"));
- object value;
- target[0].AttributesProp.TryGetValue("anotherone", out value);
- Assert.AreEqual(value, "");
- rep.Connection.Client.EditFiles(null, fs);
- // now do it while the file is open for edit
- target = rep.GetFileMetaData(opts, fs);
- Assert.IsNotNull(target);
- Assert.AreEqual(target.Count, 1);
- Assert.IsTrue(target[0].OpenAttributes.ContainsKey("anotherone"));
- target[0].OpenAttributes.TryGetValue("anotherone", out value);
- Assert.AreEqual(value, "1024");
- Assert.IsTrue(target[0].OpenAttributesProp.ContainsKey("anotherone"));
- target[0].OpenAttributesProp.TryGetValue("anotherone", out value);
- Assert.AreEqual(value, "");
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for Getting historical filetypes from tagged output
- ///</summary>
- [TestMethod()]
- public void HistoricalFileTypesTest()
- {
- 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, 13, 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);
- if (unicode == false)
- {
- FileSpec fs = new FileSpec(new DepotPath("//depot/Filetypes/ctempobj"), null);
- List<FileSpec> lfs = new List<FileSpec>();
- lfs.Add(fs);
- FileMetaData fmd = new FileMetaData();
- IList<FileMetaData> target = rep.GetFileMetaData(lfs, null);
- FileType ft = new FileType("ctempobj");
- Assert.AreEqual(target[0].HeadType.BaseType, ft.BaseType);
- Assert.AreEqual(target[0].HeadType.Modifiers, ft.Modifiers);
- fs = new FileSpec(new DepotPath("//depot/Filetypes/ctext"), null);
- lfs = new List<FileSpec>();
- lfs.Add(fs);
- fmd = new FileMetaData();
- target = rep.GetFileMetaData(lfs, null);
- ft = new FileType("ctext");
- Assert.AreEqual(target[0].HeadType.BaseType, ft.BaseType);
- Assert.AreEqual(target[0].HeadType.Modifiers, ft.Modifiers);
- fs = new FileSpec(new DepotPath("//depot/Filetypes/cxtext"), null);
- lfs = new List<FileSpec>();
- lfs.Add(fs);
- fmd = new FileMetaData();
- target = rep.GetFileMetaData(lfs, null);
- ft = new FileType("cxtext");
- Assert.AreEqual(target[0].HeadType.BaseType, ft.BaseType);
- Assert.AreEqual(target[0].HeadType.Modifiers, ft.Modifiers);
- fs = new FileSpec(new DepotPath("//depot/Filetypes/ktext"), null);
- lfs = new List<FileSpec>();
- lfs.Add(fs);
- fmd = new FileMetaData();
- target = rep.GetFileMetaData(lfs, null);
- ft = new FileType("ktext");
- Assert.AreEqual(target[0].HeadType.BaseType, ft.BaseType);
- Assert.AreEqual(target[0].HeadType.Modifiers, ft.Modifiers);
- fs = new FileSpec(new DepotPath("//depot/Filetypes/kxtext"), null);
- lfs = new List<FileSpec>();
- lfs.Add(fs);
- fmd = new FileMetaData();
- target = rep.GetFileMetaData(lfs, null);
- ft = new FileType("kxtext");
- Assert.AreEqual(target[0].HeadType.BaseType, ft.BaseType);
- Assert.AreEqual(target[0].HeadType.Modifiers, ft.Modifiers);
- fs = new FileSpec(new DepotPath("//depot/Filetypes/ltext"), null);
- lfs = new List<FileSpec>();
- lfs.Add(fs);
- fmd = new FileMetaData();
- target = rep.GetFileMetaData(lfs, null);
- ft = new FileType("ltext");
- Assert.AreEqual(target[0].HeadType.BaseType, ft.BaseType);
- Assert.AreEqual(target[0].HeadType.Modifiers, ft.Modifiers);
- fs = new FileSpec(new DepotPath("//depot/Filetypes/tempobj"), null);
- lfs = new List<FileSpec>();
- lfs.Add(fs);
- fmd = new FileMetaData();
- target = rep.GetFileMetaData(lfs, null);
- ft = new FileType("tempobj");
- Assert.AreEqual(target[0].HeadType.BaseType, ft.BaseType);
- Assert.AreEqual(target[0].HeadType.Modifiers, ft.Modifiers);
- fs = new FileSpec(new DepotPath("//depot/Filetypes/ubinary"), null);
- lfs = new List<FileSpec>();
- lfs.Add(fs);
- fmd = new FileMetaData();
- target = rep.GetFileMetaData(lfs, null);
- ft = new FileType("ubinary");
- Assert.AreEqual(target[0].HeadType.BaseType, ft.BaseType);
- Assert.AreEqual(target[0].HeadType.Modifiers, ft.Modifiers);
- fs = new FileSpec(new DepotPath("//depot/Filetypes/uresource"), null);
- lfs = new List<FileSpec>();
- lfs.Add(fs);
- fmd = new FileMetaData();
- target = rep.GetFileMetaData(lfs, null);
- ft = new FileType("uresource");
- Assert.AreEqual(target[0].HeadType.BaseType, ft.BaseType);
- Assert.AreEqual(target[0].HeadType.Modifiers, ft.Modifiers);
- fs = new FileSpec(new DepotPath("//depot/Filetypes/uxbinary"), null);
- lfs = new List<FileSpec>();
- lfs.Add(fs);
- fmd = new FileMetaData();
- target = rep.GetFileMetaData(lfs, null);
- ft = new FileType("uxbinary");
- Assert.AreEqual(target[0].HeadType.BaseType, ft.BaseType);
- Assert.AreEqual(target[0].HeadType.Modifiers, ft.Modifiers);
- fs = new FileSpec(new DepotPath("//depot/Filetypes/xbinary"), null);
- lfs = new List<FileSpec>();
- lfs.Add(fs);
- fmd = new FileMetaData();
- target = rep.GetFileMetaData(lfs, null);
- ft = new FileType("xbinary");
- Assert.AreEqual(target[0].HeadType.BaseType, ft.BaseType);
- Assert.AreEqual(target[0].HeadType.Modifiers, ft.Modifiers);
- fs = new FileSpec(new DepotPath("//depot/Filetypes/xltext"), null);
- lfs = new List<FileSpec>();
- lfs.Add(fs);
- fmd = new FileMetaData();
- target = rep.GetFileMetaData(lfs, null);
- ft = new FileType("xltext");
- Assert.AreEqual(target[0].HeadType.BaseType, ft.BaseType);
- Assert.AreEqual(target[0].HeadType.Modifiers, ft.Modifiers);
- fs = new FileSpec(new DepotPath("//depot/Filetypes/xtext"), null);
- lfs = new List<FileSpec>();
- lfs.Add(fs);
- fmd = new FileMetaData();
- target = rep.GetFileMetaData(lfs, null);
- ft = new FileType("xtext");
- Assert.AreEqual(target[0].HeadType.BaseType, ft.BaseType);
- Assert.AreEqual(target[0].HeadType.Modifiers, ft.Modifiers);
- fs = new FileSpec(new DepotPath("//depot/Filetypes/xtempobj"), null);
- lfs = new List<FileSpec>();
- lfs.Add(fs);
- fmd = new FileMetaData();
- target = rep.GetFileMetaData(lfs, null);
- ft = new FileType("xtempobj");
- Assert.AreEqual(target[0].HeadType.BaseType, ft.BaseType);
- Assert.AreEqual(target[0].HeadType.Modifiers, ft.Modifiers);
- fs = new FileSpec(new DepotPath("//depot/Filetypes/xutf16"), null);
- lfs = new List<FileSpec>();
- lfs.Add(fs);
- fmd = new FileMetaData();
- target = rep.GetFileMetaData(lfs, null);
- ft = new FileType("xutf16");
- Assert.AreEqual(target[0].HeadType.BaseType, ft.BaseType);
- Assert.AreEqual(target[0].HeadType.Modifiers, ft.Modifiers);
- }
- if (unicode == true)
- {
- FileSpec fs = new FileSpec(new DepotPath("//depot/Filetypes/xunicode"), null);
- List<FileSpec> lfs = new List<FileSpec>();
- lfs.Add(fs);
- FileMetaData fmd = new FileMetaData();
- IList<FileMetaData> target = rep.GetFileMetaData(lfs, null);
- FileType ft = new FileType("xunicode");
- Assert.AreEqual(target[0].HeadType.BaseType, ft.BaseType);
- Assert.AreEqual(target[0].HeadType.Modifiers, ft.Modifiers);
- }
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetDepotDirs
- ///</summary>
- [TestMethod()]
- public void GetDepotDirsTest()
- {
- 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, 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<String> dirs = new List<String>() { "//*" };
- string dir = "//*/*";
- dirs.Add(dir);
- IList<String> target = rep.GetDepotDirs(dirs, null );
- bool foundit = false;
- foreach (string line in target)
- {
- if (line == "//depot/MyCode")
- {
- foundit = true;
- break;
- }
- }
- Assert.IsTrue(foundit);
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetFixes
- ///</summary>
- [TestMethod()]
- public void GetFixesTest()
- {
- 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, 13, 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);
- FileSpec fs = new FileSpec(new DepotPath("//depot/..."), null);
- List<FileSpec> lfs = new List<FileSpec>();
- lfs.Add(fs);
- GetFixesCmdFlags flags = GetFixesCmdFlags.None;
- int changelistId = 0;
- string jobId = null;
- int maxFixes = 2;
- Options ops = new Options(flags, changelistId, jobId, maxFixes);
- IList<Fix> target = rep.GetFixes(lfs ,ops);
- foreach (Fix fix in target)
- {
- string expected="admin";
- string actual=fix.UserName;
- Assert.AreEqual (expected,actual );
- expected = "admin_space";
- actual = fix.ClientName;
- Assert.AreEqual(expected, actual);
- // these dates sometimes come out an hour off, possibly do
- // tho daylight savings times?
- //if (unicode == false)
- //{
- // string datestr = "12/2/2010 2:13:00 PM";
- // DateTime date = DateTime.Parse(datestr);
- // Assert.AreEqual(fix.Date, date);
- //}
- //else
- //{
- // string udatestr = "12/2/2010 2:19:21 PM";
- // DateTime udate = DateTime.Parse(udatestr);
- // Assert.AreEqual(fix.Date, udate);
- //}
- expected = "job000001";
- actual = fix.JobId;
- Assert.AreEqual(expected, actual);
- expected = "closed";
- actual = fix.Status;
- Assert.AreEqual(expected, actual);
- FixAction left = FixAction.Fixed;
- FixAction right = fix.Action;
- Assert.AreEqual(left, right);
- if (unicode == false)
- {
- int cl = 4;
- int clpos = fix.ChangeId;
- Assert.AreEqual(cl, clpos);
- }
- else
- {
- int ucl = 3;
- int uclpos = fix.ChangeId;
- Assert.AreEqual(ucl, uclpos);
- }
- jobId = "job000001";
- maxFixes = 2;
- ops = new Options(flags, changelistId, jobId, maxFixes);
- target = rep.GetFixes(lfs, ops);
- Assert.AreEqual(target.Count, 1);
- }
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetFileHistory
- ///</summary>
- [TestMethod()]
- public void GetFileHistoryTest()
- {
- 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, 5, 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);
- FileSpec fs = new FileSpec(new DepotPath("//depot/MyCode2/ReadMe.txt"), null);
- List<FileSpec> lfs = new List<FileSpec>();
- lfs.Add(fs);
- Options ops = new Options();
- ops["-m"] = "2";
- IList<FileHistory> target = rep.GetFileHistory(lfs, ops);
- int expected = 2;
- int actual = target[0].Revision;
- Assert.AreEqual(expected, actual);
- if (unicode == false)
- expected = 11;
- else
- expected = 10;
- actual = target[0].ChangelistId;
- Assert.AreEqual(expected, actual);
- expected = 30;
- long actual10 = target[0].FileSize;
- Assert.AreEqual(expected, actual10);
- string expected11 = "C7DECE3DB80A73F3F53AF4BCF6AC0576";
- string actual11 = target[0].Digest;
- Assert.AreEqual(expected11, actual11);
- string expected1 = "admin";
- string actual1 = target[0].UserName;
- Assert.AreEqual(expected1, actual1);
- if (unicode == false)
- expected1 = "submit without changes ";
- else
- expected1 = "submit with no changes ";
- actual1 = target[0].Description;
- Assert.AreEqual(expected1, actual1);
- expected1 = "admin_space";
- actual1 = target[0].ClientName;
- Assert.AreEqual(expected1, actual1);
- FileAction expected2 = FileAction.Edit;
- FileAction actual2 = target[0].Action;
- Assert.AreEqual(expected2, actual2);
- int expected3 = 1;
- int actual3 = target[1].Revision;
- Assert.AreEqual(expected3, actual3);
- if (unicode == false)
- expected3 = 10;
- else
- expected3 = 8;
- actual3 = target[1].ChangelistId;
- Assert.AreEqual(expected3, actual3);
- string expected4 = "admin";
- string actual4 = target[1].UserName;
- Assert.AreEqual(expected4, actual4);
- expected4 = "branch to MyCode2 ";
- actual4 = target[1].Description;
- Assert.AreEqual(expected4, actual4);
- expected4 = "admin_space";
- actual4 = target[1].ClientName;
- Assert.AreEqual(expected4, actual4);
- FileAction expected5 = FileAction.Branch;
- FileAction actual5 = target[1].Action;
- Assert.AreEqual(expected5, actual5);
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetCounters
- ///</summary>
- [TestMethod()]
- public void GetCountersTest()
- {
- 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, 4, 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<Counter> target = rep.GetCounters(null);
- bool foundit = false;
- foreach (Counter counter in target)
- {
- if (counter.Name == "deleteme"
- &&
- counter.Value == "44")
- {
- foundit = true;
- break;
- }
- }
- Assert.IsTrue(foundit);
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetCounter
- ///</summary>
- [TestMethod()]
- public void GetCounterTest()
- {
- 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, 4, 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);
- Counter target = rep.GetCounter("deleteme", null);
- bool foundit = false;
- if (target.Name == "deleteme"
- &&
- target.Value == "44")
- {
- foundit = true;
- break;
- }
- Assert.IsTrue(foundit);
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for DeleteCounter
- ///</summary>
- [TestMethod()]
- [DeploymentItem("p4api.net.dll")]
- public void DeleteCounterTest()
- {
- 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, 4, 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);
- rep.DeleteCounter("deleteme", null);
- IList<Counter> target = rep.GetCounters(null);
- bool foundit = false;
- foreach (Counter counter in target)
- {
- if (counter.Name == "deleteme"
- &&
- counter.Value == "44")
- {
- foundit = true;
- break;
- }
- }
- Assert.IsFalse(foundit);
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetProtectionTable
- ///</summary>
- [TestMethod()]
- public void GetProtectionTableTest()
- {
- 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, 4, 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<ProtectionEntry> target = new List<ProtectionEntry>();
- Options ops = new Options();
- ops["-o"] = null;
- target = rep.GetProtectionTable(ops);
- Assert.IsNotNull(target);
- bool foundit = false;
- foreach (ProtectionEntry pte in target)
- {
- if (pte.Mode == ProtectionMode.Admin
- &&
- pte.Type == EntryType.User
- &&
- pte.Name == "Alex"
- &&
- pte.Host == "*"
- &&
- pte.Path == "//MyCode2/ReadMe.txt")
- {
- foundit = true;
- break;
- }
- }
- Assert.IsTrue(foundit);
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetTriggerTable
- ///</summary>
- [TestMethod()]
- public void GetTriggerTableTest()
- {
- 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, 4, 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<Trigger> target = new List<Trigger>();
- Options ops = new Options();
- ops["-o"] = null;
- target = rep.GetTriggerTable(ops);
- Assert.IsNotNull(target);
- bool foundit = false;
- foreach (Trigger t in target)
- {
- if (t.Name == "change"
- &&
- t.Type == TriggerType.ChangeSubmit
- &&
- t.Path == "//depot/..."
- &&
- t.Command == "\"cmd %changelist%\""
- &&
- t.Order == 0)
- {
- foundit = true;
- break;
- }
- }
- Assert.IsTrue(foundit);
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetTypeMap
- ///</summary>
- [TestMethod()]
- public void GetTypeMapTest()
- {
- 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, 4, 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<TypeMapEntry> target = new List<TypeMapEntry>();
- Options ops = new Options();
- target = rep.GetTypeMap();
- Assert.IsNotNull(target);
- bool foundit = false;
- foreach (TypeMapEntry t in target)
- {
- if (t.FileType.BaseType.Equals(BaseFileType.Binary)
- &&
- t.FileType.Modifiers.HasFlag(FileTypeModifier.ExclusiveOpen)
- &&
- t.Path == "//depot/Modifiers/...")
- {
- foundit = true;
- break;
- }
- }
- Assert.IsTrue(foundit);
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetFormSpec
- ///</summary>
- [TestMethod()]
- public void GetFormSpecTest()
- {
- 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, 4, 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);
- FormSpec target = new FormSpec();
- Options ops = new Options();
- ops["-o"] = null;
- target = rep.GetFormSpec(ops, "change");
- Assert.IsNotNull(target);
- target = rep.GetFormSpec(ops, "branch");
- Assert.IsNotNull(target);
- target = rep.GetFormSpec(ops, "client");
- Assert.IsNotNull(target);
- target = rep.GetFormSpec(ops, "depot");
- Assert.IsNotNull(target);
- target = rep.GetFormSpec(ops, "group");
- Assert.IsNotNull(target);
- target = rep.GetFormSpec(ops, "job");
- Assert.IsNotNull(target);
- target = rep.GetFormSpec(ops, "label");
- Assert.IsNotNull(target);
- target = rep.GetFormSpec(ops, "spec");
- Assert.IsNotNull(target);
- target = rep.GetFormSpec(ops, "stream");
- Assert.IsNotNull(target);
- target = rep.GetFormSpec(ops, "triggers");
- Assert.IsNotNull(target);
- target = rep.GetFormSpec(ops, "typemap");
- Assert.IsNotNull(target);
- target = rep.GetFormSpec(ops, "user");
- Assert.IsNotNull(target);
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetSpecFieldDataType
- ///</summary>
- [TestMethod()]
- public void GetFieldDataTypeTest()
- {
- 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, 4, 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);
- FormSpec target = new FormSpec();
- Options ops = new Options();
- ops["-o"] = null;
- target = rep.GetFormSpec(ops, "job");
- Assert.IsNotNull(target);
- SpecFieldDataType type =target.GetSpecFieldDataType(target, "Job");
- Assert.AreEqual(type,SpecFieldDataType.Word);
- type = target.GetSpecFieldDataType(target, "Status");
- Assert.AreEqual(type, SpecFieldDataType.Select);
- type = target.GetSpecFieldDataType(target, "NotHere");
- Assert.AreEqual(type, SpecFieldDataType.None);
- type = target.GetSpecFieldDataType(target, "User");
- Assert.AreEqual(type, SpecFieldDataType.Word);
- type = target.GetSpecFieldDataType(target, "Date");
- Assert.AreEqual(type, SpecFieldDataType.Date);
- type = target.GetSpecFieldDataType(target, "Description");
- Assert.AreEqual(type, SpecFieldDataType.Text);
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetReviewers
- ///</summary>
- [TestMethod()]
- public void GetReviewersTest()
- {
- 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, 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);
- FileSpec fs = new FileSpec(new DepotPath("//depot/..."), null);
- List<FileSpec> lfs = new List<FileSpec>();
- lfs.Add(fs);
- IList<User> target = rep.GetReviewers(lfs, null);
- Assert.IsNotNull(target);
- bool foundit = false;
- foreach (User u in target)
- {
- if ((u.Id == "Alex" |u.Id == "Алексей")
- &&
- (u.FullName == "Alexie Dumas" | u.FullName == "Алексей Дюма")
- &&
- (u.EmailAddress == "Alex@p4test.com" | u.EmailAddress == "alex@p4test.com"))
- {
- foundit = true;
- break;
- }
- }
- Assert.IsTrue(foundit);
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetProtectionEntries
- ///</summary>
- [TestMethod()]
- public void GetProtectionEntriesTest()
- {
- 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, 4, 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<ProtectionEntry> target = new List<ProtectionEntry>();
- Options ops = new Options();
- ops["-u"] = "alex";
- target = rep.GetProtectionEntries(null, ops);
- Assert.IsNotNull(target);
- bool foundit = false;
- foreach (ProtectionEntry pte in target)
- {
- if (pte.Mode == ProtectionMode.Write
- &&
- pte.Type == EntryType.User
- &&
- pte.Name == "*"
- &&
- pte.Host == "*"
- &&
- pte.Path == "//...")
- {
- foundit = true;
- break;
- }
- }
- Assert.IsTrue(foundit);
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for TagFiles
- ///</summary>
- [TestMethod()]
- public void TagFilesTest()
- {
- 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, 5, 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);
- FileSpec fs = new FileSpec(new DepotPath("//depot/Modifiers/ReadMe.txt"), null);
- IList<FileSpec> lfs = new List<FileSpec>();
- lfs.Add(fs);
- Options ops = new Options();
- IList<FileSpec> target = rep.TagFiles(lfs, "admin_label", ops);
- Assert.IsNotNull(target);
- bool foundit = false;
- VersionSpec ver = new Revision(2);
- foreach (FileSpec f in target)
- {
- if (f.DepotPath.Path == "//depot/Modifiers/ReadMe.txt"
- &&
- f.Version.ToString() == "#2")
- {
- foundit = true;
- break;
- }
- }
- Assert.IsTrue(foundit);
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetFiles
- ///</summary>
- [TestMethod()]
- public void GetFilesTest()
- {
- 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);
- FileSpec filespec = new FileSpec(new DepotPath("//depot/MyCode2/..."), null);
- FileSpec filespec1 = new FileSpec(new DepotPath("//depot/Modifiers/..."), null);
- FileSpec filespec2 = new FileSpec(new DepotPath("//depot/TestData/..."), null);
- IList<FileSpec> filespecs = new List<FileSpec>();
- filespecs.Add(filespec);
- filespecs.Add(filespec1);
- filespecs.Add(filespec2);
- Options ops = new Options();
- IList<File> target = rep.GetFiles(filespecs, ops);
- bool foundit = false;
- foreach (File f in target)
- {
- if (f.DepotPath.Path == "//depot/TestData/Numbers.txt")
- {
- foundit = true;
- break;
- }
- }
- Assert.IsTrue(foundit);
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetSubmittedIntegrations
- ///</summary>
- [TestMethod()]
- public void GetSubmittedIntegrationsTest()
- {
- 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);
- FileSpec filespec = new FileSpec(new DepotPath("//depot/MyCode2/..."), null);
- IList<FileSpec> filespecs = new List<FileSpec>();
- filespecs.Add(filespec);
- Options ops = new Options();
- IList<FileIntegrationRecord> target = rep.GetSubmittedIntegrations(filespecs, ops);
- bool foundit = false;
- foreach (FileIntegrationRecord f in target)
- {
- if (f.How == IntegrateAction.BranchFrom)
- {
- foundit = true;
- break;
- }
- }
- Assert.IsTrue(foundit);
- filespec = null;
- ops = new Options();
- ops["-b"] = "MyCode->MyCode2";
- target = rep.GetSubmittedIntegrations(filespecs, ops);
- foundit = false;
- foreach (FileIntegrationRecord f in target)
- {
- if (f.FromFile.DepotPath.Path == "//depot/MyCode/ReadMe.txt")
- {
- foundit = true;
- break;
- }
- }
- Assert.IsTrue(foundit);
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetFileLineMatches
- ///</summary>
- [TestMethod()]
- public void GetFileLineMatchesTest()
- {
- 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);
- FileSpec filespec = new FileSpec(new DepotPath("//depot/TestData/Letters.txt"), null);
- IList<FileSpec> filespecs = new List<FileSpec>();
- filespecs.Add(filespec);
- string pattern = "kjfrj";
- Options ops = new Options((GetFileLineMatchesCmdFlags.IncludeLineNumbers), 0, 0, 0);
- IList<FileLineMatch> target = rep.GetFileLineMatches(filespecs, pattern, ops);
- bool foundit = false;
- foreach (FileLineMatch f in target)
- {
- if (f.LineNumber == 27)
- {
- foundit = true;
- break;
- }
- }
- Assert.IsTrue(foundit);
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetFileAnnotations
- ///</summary>
- [TestMethod()]
- public void GetFileAnnotationsTest()
- {
- 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, 13, 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);
- FileSpec filespec = new FileSpec(new DepotPath("//flow/D1/b/the_other.txt"), null);
- IList<FileSpec> filespecs = new List<FileSpec>();
- filespecs.Add(filespec);
- Options ops = new Options();
- ops["-ac"] = null;
- IList<FileAnnotation> target = rep.GetFileAnnotations(filespecs, ops);
- bool foundit = false;
- foreach (FileAnnotation f in target)
- {
- if (f.Line == "the other\r\n"
- &&
- f.File.Version.ToString().Contains("28")&&
- f.File.Version.ToString().Contains("49"))
- {
- foundit = true;
- break;
- }
- if (f.Line == "the other\r\n"
- &&
- f.File.Version.ToString().Contains("110") &&
- f.File.Version.ToString().Contains("131"))
- {
- foundit = true;
- break;
- }
- }
- Assert.IsTrue(foundit);
- ops = new Options();
- ops["-acIi"] = null;
- try
- {
- target = rep.GetFileAnnotations(filespecs, ops);
- }
- catch (P4Exception e)
- {
- Assert.IsNotNull(e);
- Assert.AreEqual(e.ErrorCode, P4ClientError.MsgServer_UseAnnotate);
- }
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetFileAnnotations with branches
- ///</summary>
- [TestMethod()]
- public void GetFileAnnotationsBranchesTest()
- {
- 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, 13, 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);
- FileSpec filespec = new FileSpec(new DepotPath("//flow/D1/b/the_other.txt"), null);
- IList<FileSpec> filespecs = new List<FileSpec>();
- filespecs.Add(filespec);
- Options ops = new Options();
- ops["-aci"] = null;
- IList<FileAnnotation> target = rep.GetFileAnnotations(filespecs, ops);
- bool foundit = false;
- foreach (FileAnnotation f in target)
- {
- if (f.Line == "the other\r\n"
- &&
- f.File.Version.ToString().Contains("17") &&
- f.File.Version.ToString().Contains("49"))
- {
- foundit = true;
- break;
- }
- if (f.Line == "the other\r\n"
- &&
- f.File.Version.ToString().Contains("99") &&
- f.File.Version.ToString().Contains("131"))
- {
- foundit = true;
- break;
- }
- }
- Assert.IsTrue(foundit);
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetFileAnnotations with integrations
- ///</summary>
- [TestMethod()]
- public void GetFileAnnotationsIntegrationsTest()
- {
- 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, 13, 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);
- FileSpec filespec = new FileSpec(new DepotPath("//flow/D1/b/the_other.txt"), null);
- IList<FileSpec> filespecs = new List<FileSpec>();
- filespecs.Add(filespec);
- Options ops = new Options();
- ops["-acI"] = null;
- IList<FileAnnotation> target = rep.GetFileAnnotations(filespecs, ops);
- bool foundit = false;
- foreach (FileAnnotation f in target)
- {
- if (f.Line == "the other\r\n"
- &&
- f.File.Version.ToString().Contains("17") &&
- f.File.Version.ToString().Contains("49"))
- {
- foundit = true;
- break;
- }
- if (f.Line == "the other\r\n"
- &&
- f.File.Version.ToString().Contains("99") &&
- f.File.Version.ToString().Contains("131"))
- {
- foundit = true;
- break;
- }
- }
- Assert.IsTrue(foundit);
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetFileContents
- ///</summary>
- [TestMethod()]
- public void GetFileContentsTest()
- {
- 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);
- FileSpec filespec = new FileSpec(new DepotPath("//depot/MyCode/README.txt"), null);
- IList<FileSpec> filespecs = new List<FileSpec>();
- filespecs.Add(filespec);
- Options ops = new Options();
- IList<string> target = rep.GetFileContents(filespecs, ops);
- bool foundit = false;
- foreach (string s in target)
- {
- if (s.Contains("Secret"))
- {
- foundit = true;
- break;
- }
- }
- Assert.IsTrue(foundit);
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetFileContentsEx
- ///</summary>
- [TestMethod()]
- public void GetFileContentsExTest()
- {
- 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);
- FileSpec filespec = new FileSpec(new DepotPath("//depot/MyCode/README.txt"), null);
- IList<FileSpec> filespecs = new List<FileSpec>();
- filespecs.Add(filespec);
- Options ops = new Options();
- IList<object> target = rep.GetFileContentsEx(filespecs, ops);
- Assert.IsTrue(target[0] is FileSpec);
- Assert.IsTrue(target[1] is string);
- string s = target[1] as string;
- Assert.IsTrue(s.Contains("Secret"));
- filespec = new FileSpec(new DepotPath("//depot/MyCode/Silly.bmp"), null);
- filespecs = new List<FileSpec>();
- filespecs.Add(filespec);
- ops = new Options();
- target = rep.GetFileContentsEx(filespecs, ops);
- Assert.IsTrue(target[0] is FileSpec);
- Assert.IsTrue(target[1] is byte[]);
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetDepotFileDiffs
- ///</summary>
- [TestMethod()]
- public void GetDepotFileDiffsTest()
- {
- 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<DepotFileDiff> target = rep.GetDepotFileDiffs("//depot/MyCode2/...", "//depot/TestData/...", null);
- bool foundit = false;
- foreach (DepotFileDiff d in target)
- {
- if (d.LeftFile.DepotPath.Path.Equals("//depot/MyCode2/ReadMe.txt"))
- {
- foundit = true;
- break;
- }
- }
- Assert.IsTrue(foundit);
- target = rep.GetDepotFileDiffs("//depot/MyCode2/ReadMe.txt", "//depot/TestData/Numbers.txt", null);
- foundit = false;
- foreach (DepotFileDiff d in target)
- {
- if (d.Diff.Contains("Secret!"))
- {
- foundit = true;
- break;
- }
- }
- Assert.IsTrue(foundit);
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetDepotFileDiffsRCS
- ///</summary>
- [TestMethod()]
- public void GetDepotFileDiffsRCSTest()
- {
- 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 options = new Options(GetDepotFileDiffsCmdFlags.RCS, 0, 100, null,
- null, null);
- IList<DepotFileDiff> target = rep.GetDepotFileDiffs("//flow/D1/a/that.txt#1",
- "//flow/D1/a/that.txt#3", options);
- if (!(unicode))
- {
- Assert.AreEqual(target[0].Diff, "a7 4\nA change... on Fri Jun 24 16:22:05 PDT 2011\n\nA change... on Fri Jun 24 16:22:07 PDT 2011\n\n");
- }
- else
- {
- Assert.AreEqual(target[0].Diff, "a7 4\nA change... on Mon Jun 27 15:02:42 PDT 2011\n\nA change... on Mon Jun 27 15:02:42 PDT 2011\n\n");
- }
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetDepotFileDiffsContext
- ///</summary>
- [TestMethod()]
- public void GetDepotFileDiffsContextTest()
- {
- 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 options = new Options(GetDepotFileDiffsCmdFlags.Context, 100, 0, null,
- null, null);
- IList<DepotFileDiff> target = rep.GetDepotFileDiffs("//flow/D1/a/that.txt#1",
- "//flow/D1/a/that.txt#3", options);
- if (!(unicode))
- {
- Assert.AreEqual(target[0].Diff, "***************\n*** 1,7 ****\n--- 1,11 ----\n that\n that\n thatA Change on Mon May 16 16:01:35 PDT 2011\n \n A Change on Tue May 24 14:04:57 PDT 2011-changes to a-\n A Change on Tue May 24 14:06:00 PDT 2011-changes to a, again-\n A Change on Tue May 24 14:28:53 PDT 2011-changes to a alone (again)-\n+ A change... on Fri Jun 24 16:22:05 PDT 2011\n+ \n+ A change... on Fri Jun 24 16:22:07 PDT 2011\n+ \n");
- }
- else
- {
- Assert.AreEqual(target[0].Diff, "***************\n*** 1,7 ****\n--- 1,11 ----\n that\n that\n thatA Change on Mon May 16 16:01:35 PDT 2011\n \n A Change on Tue May 24 14:04:57 PDT 2011-changes to a-\n A Change on Tue May 24 14:06:00 PDT 2011-changes to a, again-\n A Change on Tue May 24 14:28:53 PDT 2011-changes to a alone (again)-\n+ A change... on Mon Jun 27 15:02:42 PDT 2011\n+ \n+ A change... on Mon Jun 27 15:02:42 PDT 2011\n+ \n");
- }
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetDepotFileDiffsSummary
- ///</summary>
- [TestMethod()]
- public void GetDepotFileDiffsSummaryTest()
- {
- 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 options = new Options(GetDepotFileDiffsCmdFlags.Summary, 0, 100, null,
- null, null);
- IList<DepotFileDiff> target = rep.GetDepotFileDiffs("//flow/D1/a/that.txt#1",
- "//flow/D1/a/that.txt#3", options);
- Assert.AreEqual(target[0].Diff, "add 1 chunks 4 lines\ndeleted 0 chunks 0 lines\nchanged 0 chunks 0 / 0 lines\n");
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetDepotFileDiffsUnified
- ///</summary>
- [TestMethod()]
- public void GetDepotFileDiffsUnifiedTest()
- {
- 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 options = new Options(GetDepotFileDiffsCmdFlags.Unified, 0, 100, null,
- null, null);
- IList<DepotFileDiff> target = rep.GetDepotFileDiffs("//flow/D1/a/that.txt#1",
- "//flow/D1/a/that.txt#3", options);
- if (!(unicode))
- {
- Assert.AreEqual(target[0].Diff, "@@ -1,7 +1,11 @@\n that\n that\n thatA Change on Mon May 16 16:01:35 PDT 2011\n \n A Change on Tue May 24 14:04:57 PDT 2011-changes to a-\n A Change on Tue May 24 14:06:00 PDT 2011-changes to a, again-\n A Change on Tue May 24 14:28:53 PDT 2011-changes to a alone (again)-\n+A change... on Fri Jun 24 16:22:05 PDT 2011\n+\n+A change... on Fri Jun 24 16:22:07 PDT 2011\n+\n");
- }
- else
- {
- Assert.AreEqual(target[0].Diff, "@@ -1,7 +1,11 @@\n that\n that\n thatA Change on Mon May 16 16:01:35 PDT 2011\n \n A Change on Tue May 24 14:04:57 PDT 2011-changes to a-\n A Change on Tue May 24 14:06:00 PDT 2011-changes to a, again-\n A Change on Tue May 24 14:28:53 PDT 2011-changes to a alone (again)-\n+A change... on Mon Jun 27 15:02:42 PDT 2011\n+\n+A change... on Mon Jun 27 15:02:42 PDT 2011\n+\n");
- }
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetDepotFileDiffsIgnoreWSChanges
- ///</summary>
- [TestMethod()]
- public void GetDepotFileDiffsIgnoreWSChangesTest()
- {
- 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 options = new Options(GetDepotFileDiffsCmdFlags.IgnoreWhitespaceChanges, 0, 100, null,
- null, null);
- IList<DepotFileDiff> target = rep.GetDepotFileDiffs("//flow/D1/a/that.txt#1",
- "//flow/D1/a/that.txt#3", options);
- if (!(unicode))
- {
- Assert.AreEqual(target[0].Diff, "7a8,11\n> A change... on Fri Jun 24 16:22:05 PDT 2011\n> \n> A change... on Fri Jun 24 16:22:07 PDT 2011\n> \n");
- }
- else
- {
- Assert.AreEqual(target[0].Diff, "7a8,11\n> A change... on Mon Jun 27 15:02:42 PDT 2011\n> \n> A change... on Mon Jun 27 15:02:42 PDT 2011\n> \n");
- }
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetDepotFileDiffsIgnoreWS
- ///</summary>
- [TestMethod()]
- public void GetDepotFileDiffsIgnoreWSTest()
- {
- 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 options = new Options(GetDepotFileDiffsCmdFlags.IgnoreWhitespace, 0, 100, null,
- null, null);
- IList<DepotFileDiff> target = rep.GetDepotFileDiffs("//flow/D1/a/that.txt#1",
- "//flow/D1/a/that.txt#3", options);
- if (!(unicode))
- {
- Assert.AreEqual(target[0].Diff, "7a8,11\n> A change... on Fri Jun 24 16:22:05 PDT 2011\n> \n> A change... on Fri Jun 24 16:22:07 PDT 2011\n> \n");
- }
- else
- {
- Assert.AreEqual(target[0].Diff, "7a8,11\n> A change... on Mon Jun 27 15:02:42 PDT 2011\n> \n> A change... on Mon Jun 27 15:02:42 PDT 2011\n> \n");
- }
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetDepotFileDiffsIgnoreLE
- ///</summary>
- [TestMethod()]
- public void GetDepotFileDiffsIgnoreLETest()
- {
- 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 options = new Options(GetDepotFileDiffsCmdFlags.IgnoreLineEndings, 0, 100, null,
- null, null);
- IList<DepotFileDiff> target = rep.GetDepotFileDiffs("//flow/D1/a/that.txt#1",
- "//flow/D1/a/that.txt#3", options);
- if (!(unicode))
- {
- Assert.AreEqual(target[0].Diff, "7a8,11\n> A change... on Fri Jun 24 16:22:05 PDT 2011\n> \n> A change... on Fri Jun 24 16:22:07 PDT 2011\n> \n");
- }
- else
- {
- Assert.AreEqual(target[0].Diff, "7a8,11\n> A change... on Mon Jun 27 15:02:42 PDT 2011\n> \n> A change... on Mon Jun 27 15:02:42 PDT 2011\n> \n");
- }
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetDepotFileDiffsLimited
- ///</summary>
- [TestMethod()]
- public void GetDepotFileDiffsLimitedTest()
- {
- 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, 13, 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 options = new Options(GetDepotFileDiffsCmdFlags.Limit, 0, 0, null,
- null, null);
- IList<DepotFileDiff> target = rep.GetDepotFileDiffs("//flow/D1/a/that.txt#1",
- "//flow/D1/a/that.txt#3", options);
- // these files are different so the result of the
- // command should have one diff
- Assert.AreEqual(target.Count, 1);
- target = rep.GetDepotFileDiffs("//flow/D1/a/that.txt#1",
- "//flow/D1/a/that.txt#1", options);
- // these files are identical so the result of the
- // command should be null
- Assert.IsNull(target);
- // confirm the error message
- Assert.IsTrue(con.LastResults.ErrorList[0].ErrorMessage.Contains("no differing files."));
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for GetDepotFileDiffsNoFlags
- ///</summary>
- [TestMethod()]
- public void GetDepotFileDiffsNoFlags()
- {
- 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<DepotFileDiff> target = rep.GetDepotFileDiffs("//flow/D1/a/that.txt#1",
- "//flow/D1/a/that.txt#3", null);
- if (!(unicode))
- {
- Assert.AreEqual(target[0].Diff, "7a8,11\n> A change... on Fri Jun 24 16:22:05 PDT 2011\n> \n> A change... on Fri Jun 24 16:22:07 PDT 2011\n> \n");
- }
- else
- {
- Assert.AreEqual(target[0].Diff, "7a8,11\n> A change... on Mon Jun 27 15:02:42 PDT 2011\n> \n> A change... on Mon Jun 27 15:02:42 PDT 2011\n> \n");
- }
- }
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for P4APINET-158
- ///</summary>
- [TestMethod()]
- public void P4APINET_158_Test()
- {
- string uri = "localhost:6666";
- string user = "admin";
- string pass = string.Empty;
- bool unicode = false;
- for (int i = 0; i < 2; i++) // run once for ascii, once for unicode
- {
- Process p4d = Utilities.DeployP4TestServer(TestDir, 8, unicode);
- try
- {
- Perforce.P4.Server srv = new Perforce.P4.Server(new ServerAddress(uri));
- Perforce.P4.Repository p4 = new Perforce.P4.Repository(srv);
- p4.Connection.UserName = user;
- p4.Connection.Connect(new Perforce.P4.Options());
- p4.Connection.Login(pass);
- p4.Connection.Disconnect();
- }
- 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.cs | |||||
#3 | 11220 | Matt Attaway | Update Workshop version with most recent 14.2 patch of p4api.net | 10 years ago | |
#2 | 8964 | Bill | fix line endings | 11 years ago | |
#1 | 8873 | Matt Attaway | Initial add of the P4API.NET source code | 11 years ago |