using Perforce.P4; using Microsoft.VisualStudio.TestTools.UnitTesting; using System; using System.Collections.Generic; namespace p4api.net.unit.test { /// ///This is a test class for FileTypeTest and is intended ///to contain all FileTypeTest Unit Tests /// [TestClass()] public class FileTypeTest { 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 BaseType /// [TestMethod()] public void BaseTypeTest() { BaseFileType basetype = BaseFileType.Text; // TODO: Initialize to an appropriate value FileTypeModifier modifiers = FileTypeModifier.None; // TODO: Initialize to an appropriate value int storedrevs = 0; // TODO: Initialize to an appropriate value FileType target = new FileType(basetype, modifiers, storedrevs); // TODO: Initialize to an appropriate value BaseFileType expected = BaseFileType.Symlink; BaseFileType actual; target.BaseType = expected; actual = target.BaseType; Assert.AreEqual(expected, actual); } /// ///A test for Modifiers /// [TestMethod()] public void ModifiersTest() { FileTypeModifier modifiers = FileTypeModifier.CompressedFiles | FileTypeModifier.HeadrevOnly ; BaseFileType basetype = BaseFileType.Text; // TODO: Initialize to an appropriate value int storedrevs = 0; // TODO: Initialize to an appropriate value FileType target = new FileType(basetype, modifiers, storedrevs); // TODO: Initialize to an appropriate value FileTypeModifier expected = modifiers ; Assert.AreEqual(expected, target.Modifiers); } /// ///A test for StoredRevs /// [TestMethod()] public void StoredRevsTest() { BaseFileType basetype = BaseFileType.Text; // TODO: Initialize to an appropriate value FileTypeModifier modifiers = FileTypeModifier.NRevsOnly; // TODO: Initialize to an appropriate value int storedrevs = 16; FileType target = new FileType(basetype, modifiers, storedrevs); // TODO: Initialize to an appropriate value int expected = storedrevs; int actual; target.StoredRevs = expected; actual = target.StoredRevs; Assert.AreEqual(expected, actual); } /// ///A test for Parse /// [TestMethod()] public void ParseAndToStringTest() { // Base type, no flags string text = "text"; FileType expected = new FileType(BaseFileType.Text, FileTypeModifier.None); FileType actual; actual = new FileType(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.StoredRevs, actual.StoredRevs); String toString = actual.ToString(); Assert.AreEqual(text, toString); text = "binary"; expected = new FileType(BaseFileType.Binary, FileTypeModifier.None); actual = new FileType(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.StoredRevs, actual.StoredRevs); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "symlink"; expected = new FileType(BaseFileType.Symlink, FileTypeModifier.None); actual = new FileType(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.StoredRevs, actual.StoredRevs); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "apple"; expected = new FileType(BaseFileType.Apple, FileTypeModifier.None); actual = new FileType(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.StoredRevs, actual.StoredRevs); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "resource"; expected = new FileType(BaseFileType.Resource, FileTypeModifier.None); actual = new FileType(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.StoredRevs, actual.StoredRevs); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "unicode"; expected = new FileType(BaseFileType.Unicode, FileTypeModifier.None); actual = new FileType(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.StoredRevs, actual.StoredRevs); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16"; expected = new FileType(BaseFileType.UTF16, FileTypeModifier.None); actual = new FileType(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.StoredRevs, actual.StoredRevs); toString = actual.ToString(); Assert.AreEqual(text, toString); // add each flag individually (even if not strictly valid with base type) text = "utf16+m"; expected = new FileType(BaseFileType.UTF16, FileTypeModifier.ModTime); actual = new FileType(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.StoredRevs, actual.StoredRevs); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+w"; expected = new FileType(BaseFileType.UTF16, FileTypeModifier.Writable); actual = new FileType(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.StoredRevs, actual.StoredRevs); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+x"; expected = new FileType(BaseFileType.UTF16, FileTypeModifier.Exec); actual = new FileType(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.StoredRevs, actual.StoredRevs); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+k"; expected = new FileType(BaseFileType.UTF16, FileTypeModifier.KeywordsAll); actual = new FileType(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.StoredRevs, actual.StoredRevs); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+ko"; expected = new FileType(BaseFileType.UTF16, FileTypeModifier.KeywordsLimited); actual = new FileType(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.StoredRevs, actual.StoredRevs); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+l"; expected = new FileType(BaseFileType.UTF16, FileTypeModifier.ExclusiveOpen); actual = new FileType(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.StoredRevs, actual.StoredRevs); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+C"; expected = new FileType(BaseFileType.UTF16, FileTypeModifier.CompressedFiles); actual = new FileType(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.StoredRevs, actual.StoredRevs); text = "utf16+D"; expected = new FileType(BaseFileType.UTF16, FileTypeModifier.RCSDeltaFiles); actual = new FileType(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.StoredRevs, actual.StoredRevs); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+F"; expected = new FileType(BaseFileType.UTF16, FileTypeModifier.FullRevisions); actual = new FileType(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.StoredRevs, actual.StoredRevs); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+S"; expected = new FileType(BaseFileType.UTF16, FileTypeModifier.HeadrevOnly); actual = new FileType(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.StoredRevs, actual.StoredRevs); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+S3"; expected = new FileType(BaseFileType.UTF16, FileTypeModifier.NRevsOnly, 3); actual = new FileType(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.StoredRevs, actual.StoredRevs); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+S10"; expected = new FileType(BaseFileType.UTF16, FileTypeModifier.NRevsOnly, 10); actual = new FileType(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.StoredRevs, actual.StoredRevs); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+S16"; expected = new FileType(BaseFileType.UTF16, FileTypeModifier.NRevsOnly, 16); actual = new FileType(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.StoredRevs, actual.StoredRevs); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+S32"; expected = new FileType(BaseFileType.UTF16, FileTypeModifier.NRevsOnly, 32); actual = new FileType(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.StoredRevs, actual.StoredRevs); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+S64"; expected = new FileType(BaseFileType.UTF16, FileTypeModifier.NRevsOnly, 64); actual = new FileType(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.StoredRevs, actual.StoredRevs); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+S128"; expected = new FileType(BaseFileType.UTF16, FileTypeModifier.NRevsOnly, 128); actual = new FileType(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.StoredRevs, actual.StoredRevs); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+S256"; expected = new FileType(BaseFileType.UTF16, FileTypeModifier.NRevsOnly, 256); actual = new FileType(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.StoredRevs, actual.StoredRevs); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+S512"; expected = new FileType(BaseFileType.UTF16, FileTypeModifier.NRevsOnly, 512); actual = new FileType(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.StoredRevs, actual.StoredRevs); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+X"; expected = new FileType(BaseFileType.UTF16, FileTypeModifier.ArchiveTrigger); actual = new FileType(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.StoredRevs, actual.StoredRevs); toString = actual.ToString(); Assert.AreEqual(text, toString); // add all the flags (even if not strictly valid with base type) text = "utf16+mwxklCDFSX"; expected = new FileType(BaseFileType.UTF16, FileTypeModifier.ModTime | FileTypeModifier.Writable | FileTypeModifier.Exec | FileTypeModifier.KeywordsAll | FileTypeModifier.ExclusiveOpen | FileTypeModifier.CompressedFiles | FileTypeModifier.RCSDeltaFiles | FileTypeModifier.FullRevisions | FileTypeModifier.HeadrevOnly | FileTypeModifier.ArchiveTrigger); actual = new FileType(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.StoredRevs, actual.StoredRevs); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+mwxkolCDFSX"; expected = new FileType(BaseFileType.UTF16, FileTypeModifier.ModTime | FileTypeModifier.Writable | FileTypeModifier.Exec | FileTypeModifier.KeywordsLimited | FileTypeModifier.ExclusiveOpen | FileTypeModifier.CompressedFiles | FileTypeModifier.RCSDeltaFiles | FileTypeModifier.FullRevisions | FileTypeModifier.HeadrevOnly | FileTypeModifier.ArchiveTrigger); actual = new FileType(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.StoredRevs, actual.StoredRevs); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+mwxklCDFS3X"; expected = new FileType(BaseFileType.UTF16, FileTypeModifier.ModTime | FileTypeModifier.Writable | FileTypeModifier.Exec | FileTypeModifier.KeywordsAll | FileTypeModifier.ExclusiveOpen | FileTypeModifier.CompressedFiles | FileTypeModifier.RCSDeltaFiles | FileTypeModifier.FullRevisions | FileTypeModifier.NRevsOnly | FileTypeModifier.ArchiveTrigger, 3); actual = new FileType(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.StoredRevs, actual.StoredRevs); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+mwxkolCDFS3X"; expected = new FileType(BaseFileType.UTF16, FileTypeModifier.ModTime | FileTypeModifier.Writable | FileTypeModifier.Exec | FileTypeModifier.KeywordsLimited | FileTypeModifier.ExclusiveOpen | FileTypeModifier.CompressedFiles | FileTypeModifier.RCSDeltaFiles | FileTypeModifier.FullRevisions | FileTypeModifier.NRevsOnly | FileTypeModifier.ArchiveTrigger, 3); actual = new FileType(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.StoredRevs, actual.StoredRevs); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+mwxkolCDFS16X"; expected = new FileType(BaseFileType.UTF16, FileTypeModifier.ModTime | FileTypeModifier.Writable | FileTypeModifier.Exec | FileTypeModifier.KeywordsLimited | FileTypeModifier.ExclusiveOpen | FileTypeModifier.CompressedFiles | FileTypeModifier.RCSDeltaFiles | FileTypeModifier.FullRevisions | FileTypeModifier.NRevsOnly | FileTypeModifier.ArchiveTrigger, 16); actual = new FileType(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.StoredRevs, actual.StoredRevs); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+mwxkolCDFS512X"; expected = new FileType(BaseFileType.UTF16, FileTypeModifier.ModTime | FileTypeModifier.Writable | FileTypeModifier.Exec | FileTypeModifier.KeywordsLimited | FileTypeModifier.ExclusiveOpen | FileTypeModifier.CompressedFiles | FileTypeModifier.RCSDeltaFiles | FileTypeModifier.FullRevisions | FileTypeModifier.NRevsOnly | FileTypeModifier.ArchiveTrigger, 512); actual = new FileType(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.StoredRevs, actual.StoredRevs); toString = actual.ToString(); Assert.AreEqual(text, toString); } } }