xamarin-macios/tests/monotouch-test/MonoMac/CBUUID.cs

136 строки
3.9 KiB
C#

#if __MACOS__
//
// Unit tests for CBUUID
//
// Authors:
// Aaron Bockover <abock@xamarin.com>
//
// Copyright 2013 Xamarin, Inc.
//
using System;
using Foundation;
using CoreBluetooth;
using ObjCRuntime;
using NUnit.Framework;
using Xamarin.Mac.Tests;
namespace MonoMacFixtures.CoreBluetooth {
[TestFixture]
[Preserve (AllMembers = true)]
public class CBUUIDTest {
[Test]
public void Roundtrip_16bits ()
{
using (CBUUID uuid = CBUUID.FromString ("1234")) {
Assert.That (uuid.Handle, Is.Not.EqualTo (IntPtr.Zero), "Handle");
Assert.IsNotNull (uuid.Data, "Data");
Assert.That (uuid.ToString (false), Is.EqualTo ("1234"), "ToString(false)");
Assert.That (uuid.ToString (true), Is.EqualTo ("00001234-0000-1000-8000-00805f9b34fb"), "ToString(true)");
using (CBUUID u2 = CBUUID.FromString (uuid.ToString ())) {
Assert.That (u2.ToString (), Is.EqualTo (uuid.ToString ()), "Roundtrip");
}
}
}
[Test]
public void Roundtrip_128bits ()
{
using (CBUUID uuid = CBUUID.FromString ("12345678-90AB-CDEF-cafe-c80c20443d0b")) {
Assert.That (uuid.Handle, Is.Not.EqualTo (IntPtr.Zero), "Handle");
Assert.IsNotNull (uuid.Data, "Data");
Assert.That (uuid.ToString (false), Is.EqualTo (uuid.ToString (true)), "ToString");
using (CBUUID u2 = CBUUID.FromString (uuid.ToString ())) {
Assert.That (u2.ToString (), Is.EqualTo (uuid.ToString ()), "Roundtrip");
}
}
}
static CBUUID MakeFull (byte a, byte b)
{
return MakeFull (0, 0, a, b);
}
static CBUUID MakeFull (byte a, byte b, byte c, byte d)
{
return CBUUID.FromBytes (new byte [] {
a, b, c, d, 0x00, 0x00, 0x10, 0x00,
0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb
});
}
[Test]
public void Null ()
{
Assert.That (null as CBUUID, Is.Null);
Assert.That (null as CBUUID, Is.EqualTo (null as CBUUID));
}
[Test]
public void FullRandomEquals ()
{
var guid = Guid.NewGuid ();
Assert.That (CBUUID.FromBytes (guid.ToByteArray ()),
Is.EqualTo (CBUUID.FromBytes (guid.ToByteArray ())));
}
[Test]
public void FullRandomNotEqual ()
{
Assert.That (CBUUID.FromBytes (Guid.NewGuid ().ToByteArray ()),
Is.Not.EqualTo (CBUUID.FromBytes (Guid.NewGuid ().ToByteArray ())));
}
[Test]
public void PartialEquals ()
{
var guid = new byte [] { 0xaa, 0xbb };
Assert.That (CBUUID.FromBytes (guid),
Is.EqualTo (CBUUID.FromBytes (guid)));
// ObjC exception: Data <aabbccdd> does not represent a valid UUID
// guid = new byte [] { 0xaa, 0xbb, 0xcc, 0xdd };
// Assert.That (CBUUID.FromBytes (guid),
// Is.EqualTo (CBUUID.FromBytes (guid)));
Assert.That (CBUUID.FromPartial (0x1234),
Is.EqualTo (CBUUID.FromPartial (0x1234)));
Assert.That (CBUUID.FromString ("1234"),
Is.EqualTo (CBUUID.FromBytes (new byte [] { 0x12, 0x34 })));
// ObjC exception: Data <12345678> does not represent a valid UUID
// Assert.That (CBUUID.FromString ("12345678"),
// Is.EqualTo (CBUUID.FromBytes (new byte [] { 0x12, 0x34, 0x56, 0x78 })));
}
[Test]
public void PartialEqualsFull ()
{
Assert.That (CBUUID.FromPartial (0x0127), Is.EqualTo (MakeFull (0x01, 0x27)));
// ObjC exception: Data <abcdef12> does not represent a valid UUID
// Assert.That (CBUUID.FromBytes (new byte [] { 0xab, 0xcd, 0xef, 0x12 }),
// Is.EqualTo (MakeFull (0xab, 0xcd, 0xef, 0x12)));
Assert.That (CBUUID.FromString ("1234"),
Is.EqualTo (CBUUID.FromString ("00001234-0000-1000-8000-00805f9b34fb")));
// ObjC exception: Data <12345678> does not represent a valid UUID
// Assert.That (CBUUID.FromString ("12345678"),
// Is.EqualTo (CBUUID.FromString ("12345678-0000-1000-8000-00805f9b34fb")));
}
[Test]
public void PartialsOfDifferentSizeNotEqual ()
{
// ObjC exception: Data <12345678> does not represent a valid UUID
Assert.That (CBUUID.FromPartial (0x1234), Is.Not.EqualTo (
CBUUID.FromString ("12345678-0000-1000-8000-00805f9b34fb")));
}
}
}
#endif // __MACOS__