using Perforce.P4;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Diagnostics;
namespace UnitTests
{
///
///This is a test class for P4JobTest and is intended
///to contain all P4JobTest Unit Tests
///
[TestClass()]
public class P4JobTest
{
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 Delete
///
[TestMethod()]
public void DeleteTest()
{
bool unicode = false;
string server = "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);
try
{
using (P4Server target = new P4Server(server, user, pass, ws_client))
{
//P4JobList expected = null;
P4Job actual;
actual = new P4Job(target, "job000001");
Assert.IsTrue(actual.Delete(false));
}
}
catch (Exception ex)
{
Assert.Fail("Exception Thrown: {0} : {1}", ex.ToString(), ex.Message);
}
finally
{
Utilities.RemoveTestServer(p4d, TestDir);
}
unicode = !unicode;
}
}
///
///A test for Fetch
///
[TestMethod()]
public void FetchTest()
{
bool unicode = false;
string server = "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);
try
{
using (P4Server target = new P4Server(server, user, pass, ws_client))
{
//P4JobList expected = null;
P4Job actual;
actual = new P4Job(target, "job000001");
actual.Fetch();
Assert.AreEqual("admin", actual["User"]);
}
}
catch (Exception ex)
{
Assert.Fail("Exception Thrown: {0} : {1}", ex.ToString(), ex.Message);
}
finally
{
Utilities.RemoveTestServer(p4d, TestDir);
}
unicode = !unicode;
}
}
///
///A test for Fetch
///
[TestMethod()]
public void FetchTest1()
{
bool unicode = false;
string server = "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);
try
{
using (P4Server target = new P4Server(server, user, pass, ws_client))
{
//P4JobList expected = null;
P4Job actual;
actual = P4Job.Fetch(target, "job000001");
actual.Fetch();
Assert.AreEqual("admin", actual["User"]);
}
}
catch (Exception ex)
{
Assert.Fail("Exception Thrown: {0} : {1}", ex.ToString(), ex.Message);
}
finally
{
Utilities.RemoveTestServer(p4d, TestDir);
}
unicode = !unicode;
}
}
///
///A test for Parse
///
[TestMethod()]
public void ParseTest()
{
P4Server pserver = new P4Server(false);
P4Job target = new P4Job(pserver, "new");
bool expected = true;
bool actual;
actual = target.Parse(spec);
Assert.AreEqual(expected, actual);
Assert.AreEqual("job042236", target.JobId);
Assert.AreEqual("ksawicki", target["OwnedBy"]);
// currently, the base parser doesn't save tags without values
//Assert.IsTrue(String.IsNullOrEmpty(target["P4Blog"]));
}
private static String spec =
@"Job: job042236
Status: closed
Type: SIR
Severity: C
Subsystem: p4ws
Dependency:
OwnedBy: ksawicki
ReportedBy: ksawicki
ModifiedBy: ksawicki
ReportedDate: 2010/12/03 09:40:10
ModifiedDate: 2010/12/03 09:42:19
CommitRelease: 2011.1
CallNumbers:
Customers:
Description:
Add view resolver provider extension point for contributing view registered for a given
Content-Type and format query parameter.
http://computer.perforce.com/newwiki/index.php?title=Web_Services_Work_Group/Spec/Extension_Points#View_Resolver_Provider
Categories:
P4Blog:
UIDetails:
JIRAWorkLog:
";
///
///A test for Save
///
[TestMethod()]
public void SaveTest()
{
bool unicode = false;
string server = "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);
try
{
using (P4Server target = new P4Server(server, user, pass, ws_client))
{
//P4JobList expected = null;
P4Job actual;
actual = new P4Job(target, "job000001");
actual.Fetch();
actual.JobId = "new";
actual.Save(false);
Assert.AreEqual("admin", actual["User"]);
Assert.AreNotEqual("job000001", actual.JobId);
Assert.AreNotEqual("new", actual.JobId);
}
}
catch (Exception ex)
{
Assert.Fail("Exception Thrown: {0} : {1}", ex.ToString(), ex.Message);
}
finally
{
Utilities.RemoveTestServer(p4d, TestDir);
}
unicode = !unicode;
}
}
///
///A test for ToString
///
//tested by SaveTest()
//[TestMethod()]
//public void ToStringTest()
//{
//}
///
///A test for JobId
///
[TestMethod()]
public void JobIdTest()
{
P4Server pserver = new P4Server(false);
string expected = "Job1";
P4Job target = new P4Job(pserver, expected);
string actual;
actual = target.JobId;
Assert.AreEqual(expected, actual);
expected = "Job2";
target.JobId = expected;
actual = target.JobId;
Assert.AreEqual(expected, actual);
}
}
}