using Perforce.P4;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
namespace UnitTests
{
/// <summary>
///This is a test class for FileTypeTest and is intended
///to contain all FileTypeTest Unit Tests
///</summary>
[TestClass()]
public class P4FileTypeTest
{
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 Parse
///</summary>
[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);
}
}
}