using Perforce.P4; using Microsoft.VisualStudio.TestTools.UnitTesting; using System; namespace UnitTests { /// ///This is a test class for FileTypeTest and is intended ///to contain all FileTypeTest Unit Tests /// [TestClass()] public class P4FileTypeTest { 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 Parse /// [TestMethod()] public void ParseAndToStringTest() { // Base type, no flags string text = "text"; FileType expected = new FileType(FileType.Type.Text, FileType.Modifier.None); FileType actual; actual = FileType.Parse(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.MaxRevisions, actual.MaxRevisions); String toString = actual.ToString(); Assert.AreEqual(text, toString); text = "binary"; expected = new FileType(FileType.Type.Binary, FileType.Modifier.None); actual = FileType.Parse(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.MaxRevisions, actual.MaxRevisions); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "symlink"; expected = new FileType(FileType.Type.Symlink, FileType.Modifier.None); actual = FileType.Parse(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.MaxRevisions, actual.MaxRevisions); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "apple"; expected = new FileType(FileType.Type.Apple, FileType.Modifier.None); actual = FileType.Parse(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.MaxRevisions, actual.MaxRevisions); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "resource"; expected = new FileType(FileType.Type.Resource, FileType.Modifier.None); actual = FileType.Parse(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.MaxRevisions, actual.MaxRevisions); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "unicode"; expected = new FileType(FileType.Type.Unicode, FileType.Modifier.None); actual = FileType.Parse(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.MaxRevisions, actual.MaxRevisions); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16"; expected = new FileType(FileType.Type.Utf16, FileType.Modifier.None); actual = FileType.Parse(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.MaxRevisions, actual.MaxRevisions); 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(FileType.Type.Utf16, FileType.Modifier.ModTime); actual = FileType.Parse(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.MaxRevisions, actual.MaxRevisions); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+w"; expected = new FileType(FileType.Type.Utf16, FileType.Modifier.Writable); actual = FileType.Parse(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.MaxRevisions, actual.MaxRevisions); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+x"; expected = new FileType(FileType.Type.Utf16, FileType.Modifier.Executable); actual = FileType.Parse(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.MaxRevisions, actual.MaxRevisions); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+k"; expected = new FileType(FileType.Type.Utf16, FileType.Modifier.KeywordExpand); actual = FileType.Parse(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.MaxRevisions, actual.MaxRevisions); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+ko"; expected = new FileType(FileType.Type.Utf16, FileType.Modifier.KeywordHeader); actual = FileType.Parse(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.MaxRevisions, actual.MaxRevisions); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+l"; expected = new FileType(FileType.Type.Utf16, FileType.Modifier.LockAlways); actual = FileType.Parse(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.MaxRevisions, actual.MaxRevisions); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+C"; expected = new FileType(FileType.Type.Utf16, FileType.Modifier.Compressed); actual = FileType.Parse(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.MaxRevisions, actual.MaxRevisions); text = "utf16+D"; expected = new FileType(FileType.Type.Utf16, FileType.Modifier.DeltaRCS); actual = FileType.Parse(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.MaxRevisions, actual.MaxRevisions); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+F"; expected = new FileType(FileType.Type.Utf16, FileType.Modifier.FullFile); actual = FileType.Parse(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.MaxRevisions, actual.MaxRevisions); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+S"; expected = new FileType(FileType.Type.Utf16, FileType.Modifier.HeadOnly); actual = FileType.Parse(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.MaxRevisions, actual.MaxRevisions); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+S3"; expected = new FileType(FileType.Type.Utf16, FileType.Modifier.StoreNRevisions, 3); actual = FileType.Parse(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.MaxRevisions, actual.MaxRevisions); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+S10"; expected = new FileType(FileType.Type.Utf16, FileType.Modifier.StoreNRevisions, 10); actual = FileType.Parse(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.MaxRevisions, actual.MaxRevisions); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+S16"; expected = new FileType(FileType.Type.Utf16, FileType.Modifier.StoreNRevisions, 16); actual = FileType.Parse(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.MaxRevisions, actual.MaxRevisions); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+S32"; expected = new FileType(FileType.Type.Utf16, FileType.Modifier.StoreNRevisions, 32); actual = FileType.Parse(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.MaxRevisions, actual.MaxRevisions); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+S64"; expected = new FileType(FileType.Type.Utf16, FileType.Modifier.StoreNRevisions, 64); actual = FileType.Parse(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.MaxRevisions, actual.MaxRevisions); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+S128"; expected = new FileType(FileType.Type.Utf16, FileType.Modifier.StoreNRevisions, 128); actual = FileType.Parse(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.MaxRevisions, actual.MaxRevisions); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+S256"; expected = new FileType(FileType.Type.Utf16, FileType.Modifier.StoreNRevisions, 256); actual = FileType.Parse(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.MaxRevisions, actual.MaxRevisions); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+S512"; expected = new FileType(FileType.Type.Utf16, FileType.Modifier.StoreNRevisions, 512); actual = FileType.Parse(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.MaxRevisions, actual.MaxRevisions); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+X"; expected = new FileType(FileType.Type.Utf16, FileType.Modifier.TrigggerArchive); actual = FileType.Parse(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.MaxRevisions, actual.MaxRevisions); 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(FileType.Type.Utf16, FileType.Modifier.ModTime | FileType.Modifier.Writable | FileType.Modifier.Executable | FileType.Modifier.KeywordExpand | FileType.Modifier.LockAlways | FileType.Modifier.Compressed | FileType.Modifier.DeltaRCS | FileType.Modifier.FullFile | FileType.Modifier.HeadOnly | FileType.Modifier.TrigggerArchive); actual = FileType.Parse(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.MaxRevisions, actual.MaxRevisions); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+mwxkolCDFSX"; expected = new FileType(FileType.Type.Utf16, FileType.Modifier.ModTime | FileType.Modifier.Writable | FileType.Modifier.Executable | FileType.Modifier.KeywordHeader | FileType.Modifier.LockAlways | FileType.Modifier.Compressed | FileType.Modifier.DeltaRCS | FileType.Modifier.FullFile | FileType.Modifier.HeadOnly | FileType.Modifier.TrigggerArchive); actual = FileType.Parse(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.MaxRevisions, actual.MaxRevisions); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+mwxklCDFS3X"; expected = new FileType(FileType.Type.Utf16, FileType.Modifier.ModTime | FileType.Modifier.Writable | FileType.Modifier.Executable | FileType.Modifier.KeywordExpand | FileType.Modifier.LockAlways | FileType.Modifier.Compressed | FileType.Modifier.DeltaRCS | FileType.Modifier.FullFile | FileType.Modifier.StoreNRevisions | FileType.Modifier.TrigggerArchive, 3); actual = FileType.Parse(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.MaxRevisions, actual.MaxRevisions); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+mwxkolCDFS3X"; expected = new FileType(FileType.Type.Utf16, FileType.Modifier.ModTime | FileType.Modifier.Writable | FileType.Modifier.Executable | FileType.Modifier.KeywordHeader | FileType.Modifier.LockAlways | FileType.Modifier.Compressed | FileType.Modifier.DeltaRCS | FileType.Modifier.FullFile | FileType.Modifier.StoreNRevisions | FileType.Modifier.TrigggerArchive, 3); actual = FileType.Parse(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.MaxRevisions, actual.MaxRevisions); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+mwxkolCDFS16X"; expected = new FileType(FileType.Type.Utf16, FileType.Modifier.ModTime | FileType.Modifier.Writable | FileType.Modifier.Executable | FileType.Modifier.KeywordHeader | FileType.Modifier.LockAlways | FileType.Modifier.Compressed | FileType.Modifier.DeltaRCS | FileType.Modifier.FullFile | FileType.Modifier.StoreNRevisions | FileType.Modifier.TrigggerArchive, 16); actual = FileType.Parse(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.MaxRevisions, actual.MaxRevisions); toString = actual.ToString(); Assert.AreEqual(text, toString); text = "utf16+mwxkolCDFS512X"; expected = new FileType(FileType.Type.Utf16, FileType.Modifier.ModTime | FileType.Modifier.Writable | FileType.Modifier.Executable | FileType.Modifier.KeywordHeader | FileType.Modifier.LockAlways | FileType.Modifier.Compressed | FileType.Modifier.DeltaRCS | FileType.Modifier.FullFile | FileType.Modifier.StoreNRevisions | FileType.Modifier.TrigggerArchive, 512); actual = FileType.Parse(text); Assert.AreEqual(expected.BaseType, actual.BaseType); Assert.AreEqual(expected.Modifiers, actual.Modifiers); Assert.AreEqual(expected.MaxRevisions, actual.MaxRevisions); toString = actual.ToString(); Assert.AreEqual(text, toString); } } }