using Perforce.P4;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Collections.Generic;
using System.Diagnostics;
namespace p4api.net.unit.test
{
///
///This is a test class for RepositoryTest and is intended
///to contain all RepositoryTest Unit Tests
///
[TestClass()]
public partial class RepositoryTest
{
String TestDir = "c:\\MyTestDir";
private TestContext testContextInstance;
///
///Gets or sets the test context which provides
///information about and functionality for the current test run.
///
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
///
///A test for GetDepotFiles
///
[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 lfs = new List();
lfs.Add(fs);
IList 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;
}
}
///
///A test for GetDepotFilesInUnloaded
///
[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 lfs = new List();
lfs.Add(fs);
IList 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;
}
}
///
///A test for GetDepotFilesInArchiveTest
///
[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 lfs = new List();
lfs.Add(fs);
IList 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;
}
}
///
///A test for GetDepotFilesInRangeTest
///
[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 lfs = new List();
lfs.Add(fs);
IList 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;
}
}
///
///A test for GetDepotFilesNotDeletedTest
///
[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 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 lfs = new List();
lfs.Add(fs);
IList 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;
}
}
///
///A test for GetOpenedFiles
///
[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 lfs = new List();
lfs.Add(fs);
IList 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;
}
}
///
///A test for GetOpenedFilesShortOutput
///
[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 lfs = new List();
lfs.Add(fs);
// use -a
GetOpenedFilesOptions opts = new GetOpenedFilesOptions(GetOpenedFilesCmdFlags.AllClients,
null, null, null, 0);
IList target = new List();
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;
}
}
///
///A test for GetOpenedFilesExclusive
///
[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 lfs = new List();
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 target = new List();
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;
}
}
///
///A test for GetFileMetadata
///
[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 lfs = new List();
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 otheropenuserclients = new List();
bool otherlock = false;
List otherlockuserclients = new List();
List otheractions = new List();
List otherchanges = new List();
bool ourlock = false;
List resolverecords = new List();
Dictionary attributes = null;
Dictionary 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 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;
}
}
///
///A test for GetFileMetaDataFileCount
///
[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 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;
}
}
///
///A test for GetFileMetaDataInUnloaded
///
[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 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;
}
}
///
///A test for GetFileMetaDataAttribute
///
[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 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;
}
}
///
///A test for GetFileMetaDataAttributeDigest
///
[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 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;
}
}
///
///A test for GetFileMetaDataAttributeHex
///
[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 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;
}
}
///
///A test for GetFileMetaDataAttributePattern
///
[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 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;
}
}
///
///A test for GetFileMetaDataAttributePropagate
///
[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 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;
}
}
///
///A test for Getting historical filetypes from tagged output
///
[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 lfs = new List();
lfs.Add(fs);
FileMetaData fmd = new FileMetaData();
IList 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();
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();
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();
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();
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();
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();
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();
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();
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();
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();
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();
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();
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();
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();
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 lfs = new List();
lfs.Add(fs);
FileMetaData fmd = new FileMetaData();
IList 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;
}
}
///
///A test for GetDepotDirs
///
[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 dirs = new List() { "//*" };
string dir = "//*/*";
dirs.Add(dir);
IList 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;
}
}
///
///A test for GetFixes
///
[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 lfs = new List();
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 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;
}
}
///
///A test for GetFileHistory
///
[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 lfs = new List();
lfs.Add(fs);
Options ops = new Options();
ops["-m"] = "2";
IList 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;
}
}
///
///A test for GetCounters
///
[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 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;
}
}
///
///A test for GetCounter
///
[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;
}
}
///
///A test for DeleteCounter
///
[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 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;
}
}
///
///A test for GetProtectionTable
///
[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 target = new List();
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;
}
}
///
///A test for GetTriggerTable
///
[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 target = new List();
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;
}
}
///
///A test for GetTypeMap
///
[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 target = new List();
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 & FileTypeModifier.ExclusiveOpen) == FileTypeModifier.ExclusiveOpen)
&&
t.Path == "//depot/Modifiers/...")
{
foundit = true;
break;
}
}
Assert.IsTrue(foundit);
}
}
finally
{
Utilities.RemoveTestServer(p4d, TestDir);
}
unicode = !unicode;
}
}
///
///A test for GetFormSpec
///
[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;
}
}
///
///A test for GetSpecFieldDataType
///
[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;
}
}
///
///A test for GetReviewers
///
[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 lfs = new List();
lfs.Add(fs);
IList 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;
}
}
///
///A test for GetProtectionEntries
///
[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 target = new List();
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;
}
}
///
///A test for TagFiles
///
[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 lfs = new List();
lfs.Add(fs);
Options ops = new Options();
IList 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;
}
}
///
///A test for GetFiles
///
[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 filespecs = new List();
filespecs.Add(filespec);
filespecs.Add(filespec1);
filespecs.Add(filespec2);
Options ops = new Options();
IList 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;
}
}
///
///A test for GetSubmittedIntegrations
///
[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 filespecs = new List();
filespecs.Add(filespec);
Options ops = new Options();
IList 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;
}
}
///
///A test for GetFileLineMatches
///
[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 filespecs = new List();
filespecs.Add(filespec);
string pattern = "kjfrj";
Options ops = new Options((GetFileLineMatchesCmdFlags.IncludeLineNumbers), 0, 0, 0);
IList 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;
}
}
///
///A test for GetFileAnnotations
///
[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 filespecs = new List();
filespecs.Add(filespec);
Options ops = new Options();
ops["-ac"] = null;
IList 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;
}
}
///
///A test for GetFileAnnotations with branches
///
[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 filespecs = new List();
filespecs.Add(filespec);
Options ops = new Options();
ops["-aci"] = null;
IList 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;
}
}
///
///A test for GetFileAnnotations with integrations
///
[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 filespecs = new List();
filespecs.Add(filespec);
Options ops = new Options();
ops["-acI"] = null;
IList 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;
}
}
///
///A test for GetFileContents
///
[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 filespecs = new List();
filespecs.Add(filespec);
Options ops = new Options();
IList 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;
}
}
///
///A test for GetFileContentsEx
///
[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 filespecs = new List();
filespecs.Add(filespec);
Options ops = new Options();
IList