X Tutup
// ========================================================================== // This software is subject to the provisions of the Zope Public License, // Version 2.0 (ZPL). A copy of the ZPL should accompany this distribution. // THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED // WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED // WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS // FOR A PARTICULAR PURPOSE. // ========================================================================== using System; using System.Collections; namespace Python.Test { //======================================================================== // Supports units tests for indexer access. //======================================================================== public class IndexerBase { protected Hashtable t; protected IndexerBase() { t = new Hashtable(); } protected string GetValue(object index) { if (index == null) { return null; } object value = t[index]; if (value != null) { return (string)value; } return null; } } public class PublicIndexerTest : IndexerBase { public PublicIndexerTest() : base () {} public string this [int index] { get { return GetValue(index); } set { t[index] = value; } } } public class ProtectedIndexerTest : IndexerBase { public ProtectedIndexerTest() : base () {} protected string this [int index] { get { return GetValue(index); } set { t[index] = value; } } } public class InternalIndexerTest : IndexerBase { public InternalIndexerTest() : base () {} internal string this [int index] { get { return GetValue(index); } set { t[index] = value; } } } public class PrivateIndexerTest : IndexerBase { public PrivateIndexerTest() : base () {} private string this [int index] { get { return GetValue(index); } set { t[index] = value; } } } public class BooleanIndexerTest : IndexerBase { public BooleanIndexerTest() : base() {} public string this [bool index] { get { return GetValue(index); } set { t[index] = value; } } } public class ByteIndexerTest : IndexerBase { public ByteIndexerTest() : base() {} public string this [byte index] { get { return GetValue(index); } set { t[index] = value; } } } public class SByteIndexerTest : IndexerBase { public SByteIndexerTest() : base() {} public string this [sbyte index] { get { return GetValue(index); } set { t[index] = value; } } } public class CharIndexerTest : IndexerBase { public CharIndexerTest() : base() {} public string this [char index] { get { return GetValue(index); } set { t[index] = value; } } } public class Int16IndexerTest : IndexerBase { public Int16IndexerTest() : base() {} public string this [short index] { get { return GetValue(index); } set { t[index] = value; } } } public class Int32IndexerTest : IndexerBase { public Int32IndexerTest() : base() {} public string this [int index] { get { return GetValue(index); } set { t[index] = value; } } } public class Int64IndexerTest : IndexerBase { public Int64IndexerTest() : base() {} public string this [long index] { get { return GetValue(index); } set { t[index] = value; } } } public class UInt16IndexerTest : IndexerBase { public UInt16IndexerTest() : base() {} public string this [ushort index] { get { return GetValue(index); } set { t[index] = value; } } } public class UInt32IndexerTest : IndexerBase { public UInt32IndexerTest() : base() {} public string this [uint index] { get { return GetValue(index); } set { t[index] = value; } } } public class UInt64IndexerTest : IndexerBase { public UInt64IndexerTest() : base() {} public string this [ulong index] { get { return GetValue(index); } set { t[index] = value; } } } public class SingleIndexerTest : IndexerBase { public SingleIndexerTest() : base() {} public string this [float index] { get { return GetValue(index); } set { t[index] = value; } } } public class DoubleIndexerTest : IndexerBase { public DoubleIndexerTest() : base() {} public string this [double index] { get { return GetValue(index); } set { t[index] = value; } } } public class DecimalIndexerTest : IndexerBase { public DecimalIndexerTest() : base() {} public string this [decimal index] { get { return GetValue(index); } set { t[index] = value; } } } public class StringIndexerTest : IndexerBase { public StringIndexerTest() : base() {} public string this [string index] { get { return GetValue(index); } set { t[index] = value; } } } public class EnumIndexerTest : IndexerBase { public EnumIndexerTest() : base() {} public string this [ShortEnum index] { get { return GetValue(index); } set { t[index] = value; } } } public class ObjectIndexerTest : IndexerBase { public ObjectIndexerTest() : base() {} public string this [object index] { get { return GetValue(index); } set { t[index] = value; } } } public class InterfaceIndexerTest : IndexerBase { public InterfaceIndexerTest() : base() {} public string this [ISpam index] { get { return GetValue(index); } set { t[index] = value; } } } public class TypedIndexerTest : IndexerBase { public TypedIndexerTest() : base() {} public string this [Spam index] { get { return GetValue(index); } set { t[index] = value; } } } public class MultiArgIndexerTest : IndexerBase { public MultiArgIndexerTest() : base() {} public string this [int index1, int index2] { get { string key = index1.ToString() + index2.ToString(); object value = t[key]; if (value != null) { return (string)value; } return null; } set { string key = index1.ToString() + index2.ToString(); t[key] = value; } } } public class MultiTypeIndexerTest : IndexerBase { public MultiTypeIndexerTest() : base() {} public string this [int i1, string i2, ISpam i3] { get { string key = i1.ToString() + i2.ToString() + i3.GetHashCode().ToString(); object value = t[key]; if (value != null) { return (string)value; } return null; } set { string key = i1.ToString() + i2.ToString() + i3.GetHashCode().ToString(); t[key] = value; } } } }
X Tutup