using Perforce.P4; using Microsoft.VisualStudio.TestTools.UnitTesting; using System; namespace p4api.net.unit.test { /// ///This is a test class for FileTest and is intended ///to contain all FileTest Unit Tests /// [TestClass()] public class FileTest { 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 File Constructor /// [TestMethod()] public void FileConstructorTest() { DepotPath path = new DepotPath("//depot/main/photo.jpg"); Revision rev = new Revision(4); int change = 4444; FileAction action = FileAction.Branch; FileType type = new FileType("binary"); DateTime submittime = new DateTime(2011, 04, 15); File target = new File(path, null, rev, null, change, action, type, submittime, null, null); File expected = new File(); expected.DepotPath = new DepotPath("//depot/main/photo.jpg"); Assert.AreEqual(expected.DepotPath, target.DepotPath); } /// ///A test for File Constructor /// [TestMethod()] public void ParseFilesCmdTaggedDataTest() { DepotPath path = new DepotPath("//depot/main/photo.jpg"); Revision rev = new Revision(4); Revision hasrev = new Revision(3); int change = 4444; FileAction action = FileAction.Branch; FileType type = new FileType("binary"); DateTime submittime = new DateTime(2011, 04, 15); File expected = new File(path, null, rev, hasrev, change, action, type, submittime, null, null); TaggedObject obj = new TaggedObject(); File actual = new File(); actual.ParseFilesCmdTaggedData(obj); // no data but shouldn't throw obj["depotFile"] = "//depot/main/photo.jpg"; obj["rev"] = "4"; obj["haveRev"] = "3"; obj["change"] = "4444"; obj["action"] = action.ToString(); obj["type"] = type.ToString(); DateTime t = new DateTime(2011, 4, 15, 0, 0, 0, 0); DateTime utBase = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc); TimeSpan utDiff = t- utBase; long ut = (long) utDiff.TotalSeconds; obj["time"] = ut.ToString(); actual.ParseFilesCmdTaggedData(obj); // no data but shouldn't throw Assert.AreEqual(expected.DepotPath, actual.DepotPath); Assert.AreEqual(expected.Version, actual.Version); Assert.AreEqual(expected.HaveRev, actual.HaveRev); Assert.AreEqual(expected.ChangeId, actual.ChangeId); Assert.AreEqual(expected.Action, actual.Action); Assert.AreEqual(expected.Type, actual.Type); Assert.AreEqual(expected.SubmitTime, actual.SubmitTime); } } }