- using Perforce.P4;
- using Microsoft.VisualStudio.TestTools.UnitTesting;
- using System;
- using System.Diagnostics;
- namespace UnitTests
- {
- /// <summary>
- ///This is a test class for P4ChangeTest and is intended
- ///to contain all P4ChangeTest Unit Tests
- ///</summary>
- [TestClass()]
- public class P4ChangeTest
- {
- 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 Delete
- ///</summary>
- [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))
- {
- P4Change actual = P4Change.Fetch(target, 6);
- Assert.IsNotNull(actual);
- Assert.IsTrue(actual.Delete(false, true));
- }
- }
- catch (Exception ex)
- {
- Assert.Fail("Exception Thrown: {0} : {1}", ex.ToString(), ex.Message);
- }
- finally
- {
- Utilities.RemoveTestServer(p4d, TestDir);
- }
- unicode = !unicode;
- }
- }
- /// <summary>
- ///A test for Fetch
- ///</summary>
- [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))
- {
- P4Change actual = P4Change.Fetch(target, 1);
- Assert.IsNotNull(actual);
- 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;
- }
- }
- /// <summary>
- ///A test for Parse
- ///</summary>
- [TestMethod()]
- public void ParseTest()
- {
- P4Server pserver = new P4Server(false);
- P4Change target = new P4Change(pserver, -1);
- string spec = ChangeSpec;
- bool expected = true; // TODO: Initialize to an appropriate value
- bool actual;
- actual = target.Parse(spec);
- Assert.AreEqual(expected, actual);
- Assert.AreEqual(168750, target.ChangeNumber);
- }
- private static String ChangeSpec =
- @"# A Perforce Change Specification.
- #
- # Change: The change number. 'new' on a new changelist.
- # Date: The date this specification was last modified.
- # Client: The client on which the changelist was created. Read-only.
- # User: The user who created the changelist.
- # Status: Either 'pending' or 'submitted'. Read-only.
- # Type: Either 'public' or 'restricted'. Default is 'public'.
- # Description: Comments about the changelist. Required.
- # Jobs: What opened jobs are to be closed by this changelist.
- # You may delete jobs from this list. (New changelists only.)
- # Files: What opened files from the default changelist are to be added
- # to this changelist. You may delete files from this list.
- # (New changelists only.)
- Change: 168750
- Date: 2008/10/15 16:42:12
- Client: ksawicki_perforce_1666
- User: ksawicki
- Status: submitted
- Description:
- Refactor to centralized open action that handles showing a dialog for which changelist things should be opened into.
- ";
- /// <summary>
- ///A test for Save
- ///</summary>
- [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))
- {
- P4Change newChange = new P4Change(target, "admin", "admin_space");
- newChange.Restricted = false;
- newChange.Description = "New change list for Unit tests";
- Assert.IsTrue(newChange.Save());
- Assert.AreNotEqual(-1, newChange.ChangeNumber);
- P4Change actual = P4Change.Fetch(target, newChange.ChangeNumber);
- Assert.IsNotNull(actual);
- 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;
- }
- }
- /// <summary>
- ///A test for ToString
- ///</summary>
- // ToString is validated in SaveTest()
- //[TestMethod()]
- //public void ToStringTest()
- //{
- //}
- /// <summary>
- ///A test for User
- ///</summary>
- [TestMethod()]
- public void UserTest()
- {
- P4Server pserver = new P4Server(false);
- P4Change target = new P4Change(pserver, 42);
- string expected = "Charlie";
- string actual;
- target.User = expected;
- actual = target.User;
- Assert.AreEqual(expected, actual);
- expected = "Charlie";
- target = new P4Change(pserver, expected, "Ws");
- actual = target.User;
- Assert.AreEqual(expected, actual);
- }
- /// <summary>
- ///A test for Restricted
- ///</summary>
- [TestMethod()]
- public void RestrictedTest()
- {
- P4Server pserver = new P4Server(false);
- P4Change target = new P4Change(pserver, 42);
- bool expected = false;
- target.Restricted = expected;
- bool actual = target.Restricted;
- Assert.AreEqual(expected, actual);
- expected = true;
- target.Restricted = expected;
- actual = target.Restricted;
- Assert.AreEqual(expected, actual); // can only test default value of false
- }
- /// <summary>
- ///A test for Pending
- ///</summary>
- [TestMethod()]
- public void PendingTest()
- {
- P4Server pserver = new P4Server(false);
- P4Change target = new P4Change(pserver, "fred", "FredClient");
- bool actual;
- actual = target.Pending;
- Assert.AreEqual(true, actual); // can only test default value of false
- }
- /// <summary>
- ///A test for Modified
- ///</summary>
- //[TestMethod()]
- //public void ModifiedTest()
- //{
- // P4Server pserver = new P4Server(false);
- // P4Change target = new P4Change(pserver, "fred", "FredClient");
- // DateTime expected = DateTime.Now;
- // DateTime actual;
- // target.Modified = expected;
- // actual = target.Modified;
- // Assert.AreEqual(expected, actual);
- //}
- /// <summary>
- ///A test for Jobs
- ///</summary>
- [TestMethod()]
- public void JobsTest()
- {
- P4Server pserver = new P4Server(false);
- P4Change target = new P4Change(pserver, "fred", "FredClient");
- StringList expected = new String[] { "12", "42" };
- StringList actual;
- target.Jobs = expected;
- actual = target.Jobs;
- Assert.AreEqual(expected, actual);
- }
- /// <summary>
- ///A test for Files
- ///</summary>
- [TestMethod()]
- public void FilesTest()
- {
- P4Server pserver = new P4Server(false);
- P4Change target = new P4Change(pserver, "fred", "FredClient");
- StringList expected = new String[] { "//depot/code/stuff/i.c", "//depot/code/stuff/j.c" };
- StringList actual;
- target.Files = expected;
- actual = target.Files;
- Assert.AreEqual(expected, actual);
- }
- /// <summary>
- ///A test for Description
- ///</summary>
- [TestMethod()]
- public void DescriptionTest()
- {
- P4Server pserver = new P4Server(false);
- P4Change target = new P4Change(pserver, "fred", "FredClient");
- string expected = "This is a test";
- string actual;
- target.Description = expected;
- actual = target.Description;
- Assert.AreEqual(expected, actual);
- }
- /// <summary>
- ///A test for Client
- ///</summary>
- [TestMethod()]
- public void ClientTest()
- {
- String expected = "FredClient";
- P4Server pserver = new P4Server(false);
- P4Change target = new P4Change(pserver, "fred", expected);
- string actual;
- actual = target.Client;
- Assert.AreEqual(expected, actual);
- }
- /// <summary>
- ///A test for ChangeNumber
- ///</summary>
- [TestMethod()]
- public void ChangeNumberTest()
- {
- P4Server pserver = new P4Server(false);
- P4Change target = new P4Change(pserver, "fred", "FredClient");
- long actual;
- actual = target.ChangeNumber;
- Assert.AreEqual(-1, actual);
- target = new P4Change(pserver, 42);
- actual = target.ChangeNumber;
- Assert.AreEqual(42, actual);
- }
- }
- }
# | 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/P4ChangeTest.cs | |||||
#2 | 8964 | Bill | fix line endings | 11 years ago | |
#1 | 8873 | Matt Attaway | Initial add of the P4API.NET source code | 11 years ago |