188 строки
6.1 KiB
C#
188 строки
6.1 KiB
C#
//
|
|
// Unit tests for CBUUID
|
|
//
|
|
// Authors:
|
|
// Sebastien Pouliot <sebastien@xamarin.com>
|
|
// Aaron Bockover <abock@xamarin.com>
|
|
//
|
|
// Copyright 2012-2014 Xamarin Inc. All rights reserved.
|
|
//
|
|
|
|
#if !__WATCHOS__
|
|
|
|
using System;
|
|
using Foundation;
|
|
using CoreBluetooth;
|
|
using ObjCRuntime;
|
|
#if MONOMAC
|
|
using AppKit;
|
|
#else
|
|
using UIKit;
|
|
#endif
|
|
|
|
using NUnit.Framework;
|
|
|
|
namespace MonoTouchFixtures.CoreBluetooth {
|
|
|
|
[TestFixture]
|
|
[Preserve (AllMembers = true)]
|
|
public class UuidTest {
|
|
|
|
[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");
|
|
var firstExpected = "Unknown (<1234>)";
|
|
var secondExpected = "1234";
|
|
Assert.That (uuid.Description, Is.EqualTo (firstExpected).Or.EqualTo (secondExpected), "Description");
|
|
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");
|
|
var firstExpected = "Unknown (<12345678 90abcdef cafec80c 20443d0b>)";
|
|
var secondExpected = "12345678-90AB-CDEF-CAFE-C80C20443D0B";
|
|
Assert.That (uuid.Description, Is.EqualTo (firstExpected).Or.EqualTo (secondExpected), "Description");
|
|
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 Equality_Null ()
|
|
{
|
|
Assert.That (null as CBUUID, Is.Null);
|
|
Assert.That (null as CBUUID, Is.EqualTo (null as CBUUID));
|
|
}
|
|
|
|
[Test]
|
|
public void Equality_FullRandomEquals ()
|
|
{
|
|
var guid = Guid.NewGuid ();
|
|
Assert.That (CBUUID.FromBytes (guid.ToByteArray ()),
|
|
Is.EqualTo (CBUUID.FromBytes (guid.ToByteArray ())));
|
|
}
|
|
|
|
[Test]
|
|
public void Equality_FullRandomNotEqual ()
|
|
{
|
|
Assert.That (CBUUID.FromBytes (Guid.NewGuid ().ToByteArray ()),
|
|
Is.Not.EqualTo (CBUUID.FromBytes (Guid.NewGuid ().ToByteArray ())));
|
|
}
|
|
|
|
[Test]
|
|
public void Equality_PartialEquals ()
|
|
{
|
|
var guid = new byte [] { 0xaa, 0xbb };
|
|
using (var u1 = CBUUID.FromBytes (guid))
|
|
using (var u2 = CBUUID.FromBytes (guid)) {
|
|
Assert.True (u1.Equals ((object) u2), "Equals-1a");
|
|
Assert.True (u1.Equals ((NSObject) u2), "Equals-1b");
|
|
Assert.True (u1.Equals ((CBUUID) u2), "Equals-1b");
|
|
Assert.That (u1.GetHashCode (), Is.EqualTo (u2.GetHashCode ()), "GetHashCode-1");
|
|
}
|
|
|
|
using (var u1 = CBUUID.FromPartial (0x1234))
|
|
using (var u2 = CBUUID.FromPartial (0x1234)) {
|
|
Assert.True (u1.Equals ((object) u2), "Equals-2a");
|
|
Assert.True (u1.Equals ((NSObject) u2), "Equals-2b");
|
|
Assert.True (u1.Equals ((CBUUID) u2), "Equals-2b");
|
|
Assert.That (u1.GetHashCode (), Is.EqualTo (u2.GetHashCode ()), "GetHashCode-2");
|
|
}
|
|
|
|
using (var u1 = CBUUID.FromString ("1234"))
|
|
using (var u2 = CBUUID.FromBytes (new byte [] { 0x12, 0x34 })) {
|
|
Assert.True (u1.Equals ((object) u2), "Equals-3a");
|
|
Assert.True (u1.Equals ((NSObject) u2), "Equals-3b");
|
|
Assert.True (u1.Equals ((CBUUID) u2), "Equals-3b");
|
|
Assert.That (u1.GetHashCode (), Is.EqualTo (u2.GetHashCode ()), "GetHashCode-3");
|
|
}
|
|
#if MONOMAC
|
|
if (TestRuntime.CheckSystemVersion (PlatformName.MacOSX, 10, 10)) {
|
|
guid = new byte [] { 0xaa, 0xbb, 0xcc, 0xdd };
|
|
Assert.That (CBUUID.FromBytes (guid),
|
|
Is.EqualTo (CBUUID.FromBytes (guid)));
|
|
|
|
Assert.That (CBUUID.FromString ("12345678"),
|
|
Is.EqualTo (CBUUID.FromBytes (new byte [] { 0x12, 0x34, 0x56, 0x78 })));
|
|
}
|
|
#endif
|
|
}
|
|
|
|
[Test]
|
|
public void Equality_PartialEqualsFull ()
|
|
{
|
|
using (var u1 = CBUUID.FromPartial (0x0127))
|
|
using (var u2 = MakeFull (0x01, 0x27)) {
|
|
Assert.True (u1.Equals ((object) u2), "Equals-1a");
|
|
Assert.True (u1.Equals ((NSObject) u2), "Equals-1b");
|
|
Assert.True (u1.Equals ((CBUUID) u2), "Equals-1b");
|
|
Assert.That (u1.GetHashCode (), Is.EqualTo (u2.GetHashCode ()), "GetHashCode-1");
|
|
}
|
|
|
|
using (var u1 = CBUUID.FromBytes (new byte [] { 0xab, 0xcd }))
|
|
using (var u2 = MakeFull (0xab, 0xcd)) {
|
|
Assert.True (u1.Equals ((object) u2), "Equals-2a");
|
|
Assert.True (u1.Equals ((NSObject) u2), "Equals-2b");
|
|
Assert.True (u1.Equals ((CBUUID) u2), "Equals-2b");
|
|
Assert.That (u1.GetHashCode (), Is.EqualTo (u2.GetHashCode ()), "GetHashCode-2");
|
|
}
|
|
|
|
using (var u1 = CBUUID.FromString ("1234"))
|
|
using (var u2 = CBUUID.FromString ("00001234-0000-1000-8000-00805f9b34fb")) {
|
|
Assert.True (u1.Equals ((object) u2), "Equals-3a");
|
|
Assert.True (u1.Equals ((NSObject) u2), "Equals-3b");
|
|
Assert.True (u1.Equals ((CBUUID) u2), "Equals-3b");
|
|
Assert.That (u1.GetHashCode (), Is.EqualTo (u2.GetHashCode ()), "GetHashCode-3");
|
|
}
|
|
#if MONOMAC
|
|
if (TestRuntime.CheckSystemVersion (PlatformName.MacOSX, 10, 10)) {
|
|
Assert.That (CBUUID.FromBytes (new byte [] { 0xab, 0xcd, 0xef, 0x12 }),
|
|
Is.EqualTo (MakeFull (0xab, 0xcd, 0xef, 0x12)));
|
|
|
|
Assert.That (CBUUID.FromString ("12345678"),
|
|
Is.EqualTo (CBUUID.FromString ("12345678-0000-1000-8000-00805f9b34fb")));
|
|
}
|
|
#endif
|
|
}
|
|
|
|
[Test]
|
|
public void Equality_PartialsOfDifferentSizeNotEqual ()
|
|
{
|
|
TestRuntime.AssertSystemVersion (PlatformName.MacOSX, 10, 10, throwIfOtherPlatform: false);
|
|
#if MONOMAC
|
|
Assert.That (CBUUID.FromPartial (0x1234), Is.Not.EqualTo (
|
|
CBUUID.FromBytes (new byte [] { 0x12, 0x34, 0x56, 0x78 })));
|
|
#endif
|
|
}
|
|
}
|
|
}
|
|
|
|
#endif // !__WATCHOS__
|