[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/pythonindy/pythonnet/master/pythonnet/src/testing/indexertest.cs [Back]  [Original]

// ==========================================================================
// 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; 
	    }
	}

    }


}

Web Proxy Viewer  |  New URL  |  Original Page