blob: 782335d18d77f1272f7f88247d601ef12acb0671 [file] [log] [blame]
// $Id$
//
// Copyright 2007-2008 Cisco Systems Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License"); you may not
// use this file except in compliance with the License. You may obtain a copy
// of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
// License for the specific language governing permissions and limitations
// under the License.
using System;
using NUnit.Framework;
using Etch.Util;
namespace Etch.Util
{
[TestFixture]
public class TestStringUtil
{
[TestFixtureSetUp]
public void First()
{
Console.WriteLine();
Console.Write( "TestStringUtil" );
}
#region LEFT SPLIT TESTS
[Test]
public void TestSimpleLeftSplit()
{
String test = "Hello: World";
String[] s = StringUtil.LeftSplit( test, ':' );
Assert.AreEqual( "Hello", s[ 0 ] );
Assert.AreEqual( " World", s[ 1 ] );
}
[Test]
public void TestMultipleLeftSplit()
{
String test = "Hello: World: Second";
String[] s = StringUtil.LeftSplit( test, ':' );
Assert.AreEqual( "Hello", s[ 0 ] );
Assert.AreEqual( " World: Second", s[ 1 ] );
}
[Test]
public void TestNoDelimsLeftSplit()
{
String test = "Hello World";
String[] s = StringUtil.LeftSplit( test, ':' );
Assert.IsNull( s );
}
#endregion
#region RIGHT SPLIT TESTS
[Test]
public void TestSimpleRightSplit()
{
String test = "Hello: World";
String[] s = StringUtil.RightSplit( test, ':' );
Assert.AreEqual( "Hello", s[ 0 ] );
Assert.AreEqual( " World", s[ 1 ] );
}
[Test]
public void TestMultipleRightSplit()
{
String test = "Hello: World: Second";
String[] s = StringUtil.RightSplit( test, ':' );
Assert.AreEqual( "Hello: World", s[ 0 ] );
Assert.AreEqual( " Second", s[ 1 ] );
}
[Test]
public void TestNoDelimsRightSplit()
{
String test = "Hello World";
String[] s = StringUtil.RightSplit( test, ':' );
Assert.IsNull( s );
}
#endregion
#region TOHEX TESTS
[Test]
public void TestToHex_validArgs()
{
Assert.AreEqual( '0', StringUtil.ToHex( 0 ) );
Assert.AreEqual( '1', StringUtil.ToHex( 1 ) );
Assert.AreEqual( '2', StringUtil.ToHex( 2 ) );
Assert.AreEqual( '3', StringUtil.ToHex( 3 ) );
Assert.AreEqual( '4', StringUtil.ToHex( 4 ) );
Assert.AreEqual( '5', StringUtil.ToHex( 5 ) );
Assert.AreEqual( '6', StringUtil.ToHex( 6 ) );
Assert.AreEqual( '7', StringUtil.ToHex( 7 ) );
Assert.AreEqual( '8', StringUtil.ToHex( 8 ) );
Assert.AreEqual( '9', StringUtil.ToHex( 9 ) );
Assert.AreEqual( 'a', StringUtil.ToHex( 10 ) );
Assert.AreEqual( 'b', StringUtil.ToHex( 11 ) );
Assert.AreEqual( 'c', StringUtil.ToHex( 12 ) );
Assert.AreEqual( 'd', StringUtil.ToHex( 13 ) );
Assert.AreEqual( 'e', StringUtil.ToHex( 14 ) );
Assert.AreEqual( 'f', StringUtil.ToHex( 15 ) );
}
[Test]
[ExpectedException(typeof(ArgumentException))]
public void TestToHex_invalidArg()
{
StringUtil.ToHex( 16 );
}
#endregion
#region FROMHEX TESTS
public void TestFromHex()
{
Assert.AreEqual( 0, StringUtil.FromHex( '0' ) );
Assert.AreEqual( 1, StringUtil.FromHex( '1' ) );
Assert.AreEqual( 2, StringUtil.FromHex( '2' ) );
Assert.AreEqual( 3, StringUtil.FromHex( '3' ) );
Assert.AreEqual( 4, StringUtil.FromHex( '4' ) );
Assert.AreEqual( 5, StringUtil.FromHex( '5' ) );
Assert.AreEqual( 6, StringUtil.FromHex( '6' ) );
Assert.AreEqual( 7, StringUtil.FromHex( '7' ) );
Assert.AreEqual( 8, StringUtil.FromHex( '8' ) );
Assert.AreEqual( 9, StringUtil.FromHex( '9' ) );
Assert.AreEqual( 10, StringUtil.FromHex( 'a' ) );
Assert.AreEqual( 11, StringUtil.FromHex( 'b' ) );
Assert.AreEqual( 12, StringUtil.FromHex( 'c' ) );
Assert.AreEqual( 13, StringUtil.FromHex( 'd' ) );
Assert.AreEqual( 14, StringUtil.FromHex( 'e' ) );
Assert.AreEqual( 15, StringUtil.FromHex( 'f' ) );
}
[Test]
[ExpectedException(typeof(ArgumentException))]
public void TestFromHex_invalid()
{
StringUtil.FromHex( 'g' );
}
#endregion
}
}