Refactur UIDs

This commit is contained in:
Frederik Carlier
2018-06-19 22:54:05 +02:00
parent 22fbc6afa5
commit 2b4fe6595e
3 changed files with 115 additions and 118 deletions

View File

@@ -9,65 +9,57 @@ namespace plistcil.test
[Fact]
public void ByteUidTest()
{
var uid = new UID("byte", (byte)0xAB);
var uid = new UID((byte)0xAB);
Assert.Equal(new byte[] { 0xAB }, uid.Bytes);
Assert.Equal("byte", uid.Name);
}
[Fact]
public void SByteUidTest()
{
var uid = new UID("sbyte", unchecked((sbyte)0xAB));
Assert.Equal(new byte[] { 0xAB }, uid.Bytes);
Assert.Equal("sbyte", uid.Name);
var uid = new UID("test", unchecked((sbyte)0x0F));
Assert.Equal(new byte[] { 0x0F }, uid.Bytes);
}
[Fact]
public void ShortUidTest()
{
var uid = new UID("short", unchecked((short)0xABCD));
Assert.Equal(new byte[] { 0xAB, 0xCD }, uid.Bytes);
Assert.Equal("short", uid.Name);
var uid = new UID("test", unchecked((short)0x0F0F));
Assert.Equal(new byte[] { 0x0F, 0x0F }, uid.Bytes);
}
[Fact]
public void UShortUidTest()
{
var uid = new UID("ushort", 0xABCDu);
var uid = new UID(0xABCDu);
Assert.Equal(new byte[] { 0xAB, 0xCD }, uid.Bytes);
Assert.Equal("ushort", uid.Name);
}
[Fact]
public void UIntUidTest()
{
var uid = new UID("uint", 0xABCDEF00u);
var uid = new UID(0xABCDEF00u);
Assert.Equal(new byte[] { 0xAB, 0xCD, 0xEF, 0x00 }, uid.Bytes);
Assert.Equal("uint", uid.Name);
}
[Fact]
public void IntUidTest()
{
var uid = new UID("int", 0xABCDEF00);
var uid = new UID(0xABCDEF00);
Assert.Equal(new byte[] { 0xAB, 0xCD, 0xEF, 0x00 }, uid.Bytes);
Assert.Equal("int", uid.Name);
}
[Fact]
public void ULongUidTest()
{
var uid = new UID("ulong", 0xABCDEF0000EFCDABu);
var uid = new UID(0xABCDEF0000EFCDABu);
Assert.Equal(new byte[] { 0xAB, 0xCD, 0xEF, 0x00, 0x00, 0xEF, 0xCD, 0xAB }, uid.Bytes);
Assert.Equal("ulong", uid.Name);
}
[Fact]
public void LongUidTest()
{
var uid = new UID("int", 0xABCDEF0000EFCDAB);
var uid = new UID(0xABCDEF0000EFCDAB);
Assert.Equal(new byte[] { 0xAB, 0xCD, 0xEF, 0x00, 0x00, 0xEF, 0xCD, 0xAB }, uid.Bytes);
Assert.Equal("int", uid.Name);
}
[Theory]
@@ -75,24 +67,16 @@ namespace plistcil.test
[InlineData(new byte[] { 0xAB, 0xCD })]
[InlineData(new byte[] { 0xAB, 0xCD, 0xEF, 0xFE })]
[InlineData(new byte[] { 0xAB, 0xCD, 0xEF, 0xFE, 0xFE, 0xEF, 0xCD, 0xAB })]
[InlineData(new byte[] { 0x00 })]
[InlineData(new byte[] { 0x00, 0x00 })]
[InlineData(new byte[] { 0x00, 0xCD })]
[InlineData(new byte[] { 0x00, 0x00, 0x00, 0x00 })]
[InlineData(new byte[] { 0x00, 0x00, 0x00, 0xCD })]
[InlineData(new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 })]
[InlineData(new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCD })]
public void UidFromArrayTest(byte[] array)
{
var uid = new UID("array", array);
var uid = new UID(array);
Assert.Equal(array, uid.Bytes);
Assert.Equal("array", uid.Name);
}
[Fact]
public void BinaryRoundTripTest()
{
var original = new UID("0", 0xabcd);
var original = new UID(0xabcd);
using (MemoryStream stream = new MemoryStream())
{
@@ -106,14 +90,14 @@ namespace plistcil.test
[Fact]
public void XmlRoundTripTest()
{
var original = new UID("0", 0xabcd);
var original = new UID(0xabcd);
var plist = original.ToXmlPropertyList();
// UIDs don't exist in XML property lists, but they are represented as strings
// for compability purposes
var roundtrip = XmlPropertyListParser.ParseString(plist) as NSString;
Assert.Equal("0000abcd", roundtrip.ToObject());
Assert.Equal("abcd", roundtrip.ToObject());
}
}
}