using Perforce.P4;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
namespace p4api.net.unit.test
{
/// <summary>
///This is a test class for P4MapApiTest and is intended
///to contain all P4MapApiTest Unit Tests
///</summary>
[TestClass()]
public class P4MapApiTest
{
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 Insert
///</summary>
[TestMethod()]
public void InsertTest()
{
bool unicode = false;
for (int i = 0; i < 2; i++)
{
P4Server pserver = new P4Server(unicode);
P4MapApi target = new P4MapApi(pserver);
string left1 = "//depot/main/...";
string right1 = "//XP1_usr/depot/main/...";
P4MapApi.Type type1 = P4MapApi.Type.Include;
target.Insert(left1, right1, type1);
string left2 = "//depot/main/www/...";
string right2 = "//XP1_usr/depot/main/www/...";
P4MapApi.Type type2 = P4MapApi.Type.Exclude;
target.Insert(left2, right2, type2);
string left3 = "//depot/dev/script/...";
string right3 = "//XP1_usr/depot/dev/script/...";
P4MapApi.Type type3 = P4MapApi.Type.Include;
target.Insert(left3, right3, type3);
string left4 = "//depot/main/www/...";
string right4 = "//XP1_usr/depot/live/www/*.html";
P4MapApi.Type type4 = P4MapApi.Type.Include;
target.Insert(left4, right4, type4);
int tCount = target.Count;
Assert.AreEqual(4, tCount);
// no errors so passed
}
}
/// <summary>
///A test for Count
///</summary>
[TestMethod()]
public void CountTest()
{
bool unicode = false;
for (int i = 0; i < 2; i++)
{
P4Server pserver = new P4Server(unicode);
P4MapApi target = new P4MapApi(pserver);
string left1 = "//depot/main/...";
string right1 = "//XP1_usr/depot/main/...";
P4MapApi.Type type1 = P4MapApi.Type.Include;
target.Insert(left1, right1, type1);
string left2 = "//depot/main/www/...";
string right2 = "//XP1_usr/depot/main/www/...";
P4MapApi.Type type2 = P4MapApi.Type.Exclude;
target.Insert(left2, right2, type2);
string left3 = "//depot/dev/script/...";
string right3 = "//XP1_usr/depot/dev/script/...";
P4MapApi.Type type3 = P4MapApi.Type.Include;
target.Insert(left3, right3, type3);
string left4 = "//depot/main/www/...";
string right4 = "//XP1_usr/depot/live/www/*.html";
P4MapApi.Type type4 = P4MapApi.Type.Include;
target.Insert(left4, right4, type4);
int tCount = target.Count;
Assert.AreEqual(4, tCount);
unicode = !unicode;
}
}
/// <summary>
///A test for Translate
///</summary>
[TestMethod()]
public void TranslateTest()
{
bool unicode = false;
for (int i = 0; i < 2; i++)
{
P4Server pserver = new P4Server(unicode);
P4MapApi target = new P4MapApi(pserver);
String left1 = "//depot/...";
String right1 = "//ws/...";
P4MapApi.Type type1 = P4MapApi.Type.Include;
target.Insert(left1, right1, type1);
int tCount = target.Count;
Assert.AreEqual(1, tCount);
String actual = target.Translate("//ws/foo.txt", P4MapApi.Direction.RightLeft);
Assert.AreEqual(actual, "//depot/foo.txt");
actual = target.Translate("//depot/foo.txt", P4MapApi.Direction.LeftRight);
Assert.AreEqual(actual, "//ws/foo.txt");
actual = target.Translate("//usr/bar.txt", P4MapApi.Direction.LeftRight);
Assert.AreEqual(actual, null);
unicode = !unicode;
}
}
/// <summary>
///A test for Join
///</summary>
[TestMethod()]
public void JoinTest()
{
bool unicode = false;
for (int i = 0; i < 2; i++)
{
P4Server pserver = new P4Server(unicode);
P4MapApi target1 = new P4MapApi(pserver);
String left1 = "//depot/...";
String right1 = "//ws/...";
P4MapApi.Type type1 = P4MapApi.Type.Include;
target1.Insert(left1, right1, type1);
int tCount1 = target1.Count;
Assert.AreEqual(1, tCount1);
P4MapApi target2 = new P4MapApi(pserver);
String left2 = "//ws/...";
String right2 = "//ace/...";
P4MapApi.Type type2 = P4MapApi.Type.Include;
target2.Insert(left2, right2, type2);
int tCount2 = target2.Count;
Assert.AreEqual(1, tCount2);
P4MapApi actual = P4MapApi.Join(target1, P4MapApi.Direction.LeftRight, target2, P4MapApi.Direction.LeftRight);
int tCount3 = actual.Count;
Assert.AreEqual(1, tCount3);
string translated = actual.Translate("//depot/foo.txt", P4MapApi.Direction.LeftRight);
Assert.AreEqual(translated, "//ace/foo.txt");
unicode = !unicode;
}
}
/// <summary>
///A test for Join
///</summary>
[TestMethod()]
public void JoinTest1()
{
bool unicode = false;
for (int i = 0; i < 2; i++)
{
P4Server pserver = new P4Server(unicode);
P4MapApi target1 = new P4MapApi(pserver);
String lr = "//ws/directory/...";
P4MapApi.Type type1 = P4MapApi.Type.Include;
target1.Insert(lr, type1);
int tCount1 = target1.Count;
Assert.AreEqual(1, tCount1);
P4MapApi target2 = new P4MapApi(pserver);
String left2 = "//ws/...";
String right2 = "//depot/...";
P4MapApi.Type type2 = P4MapApi.Type.Include;
target2.Insert(left2, right2, type2);
int tCount2 = target2.Count;
Assert.AreEqual(1, tCount2);
P4MapApi actual = P4MapApi.Join(target1, target2);
int tCount3 = actual.Count;
Assert.AreEqual(1, tCount3);
string translated = actual.Translate("//ws/directory/foo.txt", P4MapApi.Direction.LeftRight);
Assert.AreEqual(translated, "//depot/directory/foo.txt");
unicode = !unicode;
}
}
/// <summary>
///A test for Insert
///</summary>
[TestMethod()]
public void InsertTest1()
{
bool unicode = false;
for (int i = 0; i < 2; i++)
{
P4Server pserver = new P4Server(unicode);
P4MapApi target = new P4MapApi(pserver);
string lr1 = "Both 1";
P4MapApi.Type type1 = P4MapApi.Type.Include;
target.Insert(lr1, type1);
string lr2 = "Both 2";
P4MapApi.Type type2 = P4MapApi.Type.Include;
target.Insert(lr2, type2);
int tCount = target.Count;
Assert.AreEqual(2, tCount);
// no errors so passed
}
}
/// <summary>
///A test for GetType
///</summary>
[TestMethod()]
public void GetTypeTest()
{
bool unicode = false;
for (int i = 0; i < 2; i++)
{
P4Server pserver = new P4Server(unicode);
P4MapApi target = new P4MapApi(pserver);
string left1 = "//depot/main/...";
string right1 = "//XP1_usr/depot/main/...";
P4MapApi.Type type1 = P4MapApi.Type.Include;
target.Insert(left1, right1, type1);
string left2 = "//depot/main/www/...";
string right2 = "//XP1_usr/depot/main/www/...";
P4MapApi.Type type2 = P4MapApi.Type.Exclude;
target.Insert(left2, right2, type2);
string left3 = "//depot/dev/script/...";
string right3 = "//XP1_usr/depot/dev/script/...";
P4MapApi.Type type3 = P4MapApi.Type.Include;
target.Insert(left3, right3, type3);
string left4 = "//depot/main/www/...";
string right4 = "//XP1_usr/depot/live/www/*.html";
P4MapApi.Type type4 = P4MapApi.Type.Include;
target.Insert(left4, right4, type4);
int tCount = target.Count;
Assert.AreEqual(4, tCount);
P4MapApi.Type actual = target.GetType(1);
Assert.AreEqual(type2, actual);
actual = target.GetType(0);
Assert.AreEqual(type1, actual);
unicode = !unicode;
}
}
/// <summary>
///A test for GetRight
///</summary>
[TestMethod()]
public void GetRightTest()
{
bool unicode = false;
for (int i = 0; i < 2; i++)
{
P4Server pserver = new P4Server(unicode);
P4MapApi target = new P4MapApi(pserver);
string left1 = "//depot/main/...";
string right1 = "//XP1_usr/depot/main/...";
P4MapApi.Type type1 = P4MapApi.Type.Include;
target.Insert(left1, right1, type1);
string left2 = "//depot/main/www/...";
string right2 = "//XP1_usr/depot/main/www/...";
P4MapApi.Type type2 = P4MapApi.Type.Exclude;
target.Insert(left2, right2, type2);
string left3 = "//depot/dev/script/...";
string right3 = "//XP1_usr/depot/dev/script/...";
P4MapApi.Type type3 = P4MapApi.Type.Include;
target.Insert(left3, right3, type3);
string left4 = "//depot/main/www/...";
string right4 = "//XP1_usr/depot/live/www/*.html";
P4MapApi.Type type4 = P4MapApi.Type.Include;
target.Insert(left4, right4, type4);
int tCount = target.Count;
Assert.AreEqual(4, tCount);
String actual = target.GetRight(1);
Assert.AreEqual(right2, actual);
actual = target.GetRight(0);
Assert.AreEqual(right1, actual);
unicode = !unicode;
}
}
/// <summary>
///A test for GetLeft
///</summary>
[TestMethod()]
public void GetLeftTest()
{
bool unicode = false;
for (int i = 0; i < 2; i++)
{
P4Server pserver = new P4Server(unicode);
P4MapApi target = new P4MapApi(pserver);
string left1 = "//depot/main/...";
string right1 = "//XP1_usr/depot/main/...";
P4MapApi.Type type1 = P4MapApi.Type.Include;
target.Insert(left1, right1, type1);
string left2 = "//depot/main/www/...";
string right2 = "//XP1_usr/depot/main/www/...";
P4MapApi.Type type2 = P4MapApi.Type.Exclude;
target.Insert(left2, right2, type2);
string left3 = "//depot/dev/script/...";
string right3 = "//XP1_usr/depot/dev/script/...";
P4MapApi.Type type3 = P4MapApi.Type.Include;
target.Insert(left3, right3, type3);
string left4 = "//depot/main/www/...";
string right4 = "//XP1_usr/depot/live/www/*.html";
P4MapApi.Type type4 = P4MapApi.Type.Include;
target.Insert(left4, right4, type4);
int tCount = target.Count;
Assert.AreEqual(4, tCount);
String actual = target.GetLeft(1);
Assert.AreEqual(left2, actual);
actual = target.GetLeft(0);
Assert.AreEqual(left1, actual);
unicode = !unicode;
}
}
/// <summary>
///A test for Clear
///</summary>
[TestMethod()]
public void ClearTest()
{
bool unicode = false;
for (int i = 0; i < 2; i++)
{
P4Server pserver = new P4Server(unicode);
P4MapApi target = new P4MapApi(pserver);
string left1 = "//depot/main/...";
string right1 = "//XP1_usr/depot/main/...";
P4MapApi.Type type1 = P4MapApi.Type.Include;
target.Insert(left1, right1, type1);
string left2 = "//depot/main/www/...";
string right2 = "//XP1_usr/depot/main/www/...";
P4MapApi.Type type2 = P4MapApi.Type.Exclude;
target.Insert(left2, right2, type2);
string left3 = "//depot/dev/script/...";
string right3 = "//XP1_usr/depot/dev/script/...";
P4MapApi.Type type3 = P4MapApi.Type.Include;
target.Insert(left3, right3, type3);
string left4 = "//depot/main/www/...";
string right4 = "//XP1_usr/depot/live/www/*.html";
P4MapApi.Type type4 = P4MapApi.Type.Include;
target.Insert(left4, right4, type4);
int actual = target.Count;
Assert.AreEqual(4, actual);
target.Clear();
actual = target.Count;
Assert.AreEqual(0, actual);
unicode = !unicode;
}
}
}
}