Mercurial > projects > dstep
view dstep/foundation/NSScriptWhoseTests.d @ 16:19885b43130e
Huge update, the bridge actually works now
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Sun, 03 Jan 2010 22:06:11 +0100 |
parents | 89f3c3ef1fd2 |
children | b9de51448c6b |
line wrap: on
line source
/** * Copyright: Copyright (c) 2009 Jacob Carlborg. * Authors: Jacob Carlborg * Version: Initial created: Aug 3, 2009 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) */ module dstep.foundation.NSScriptWhoseTests; import dstep.foundation.NSArray; import dstep.foundation.NSCoder; import dstep.foundation.NSObject; import dstep.foundation.NSObjCRuntime; import dstep.foundation.NSScriptObjectSpecifiers; import dstep.foundation.NSString; import dstep.objc.bridge.Bridge; import dstep.objc.objc; alias NSUInteger NSTestComparisonOperation; enum { NSEqualToComparison = 0, NSLessThanOrEqualToComparison, NSLessThanComparison, NSGreaterThanOrEqualToComparison, NSGreaterThanComparison, NSBeginsWithComparison, NSEndsWithComparison, NSContainsComparison } const TNSComparisonMethods = ` bool isEqualTo (Object object) { return invokeObjcSelf!(bool, "isEqualTo:", Object)(object); } bool isLessThanOrEqualTo (Object object) { return invokeObjcSelf!(bool, "isLessThanOrEqualTo:", Object)(object); } bool isLessThan (Object object) { return invokeObjcSelf!(bool, "isLessThan:", Object)(object); } bool isGreaterThanOrEqualTo (Object object) { return invokeObjcSelf!(bool, "isGreaterThanOrEqualTo:", Object)(object); } bool isGreaterThan (Object object) { return invokeObjcSelf!(bool, "isGreaterThan:", Object)(object); } bool isNotEqualTo (Object object) { return invokeObjcSelf!(bool, "isNotEqualTo:", Object)(object); } bool doesContain (Object object) { return invokeObjcSelf!(bool, "doesContain:", Object)(object); } bool isLike (NSString object) { return invokeObjcSelf!(bool, "isLike:", NSString)(object); } bool isCaseInsensitiveLike (NSString object) { return invokeObjcSelf!(bool, "isCaseInsensitiveLike:", NSString)(object); } //mixin ObjcBindMethod!(isEqualTo, "isEqualTo:"); //mixin ObjcBindMethod!(isLessThanOrEqualTo, "isLessThanOrEqualTo:"); //mixin ObjcBindMethod!(isLessThan, "isLessThan:"); //mixin ObjcBindMethod!(isGreaterThanOrEqualTo, "isGreaterThanOrEqualTo:"); //mixin ObjcBindMethod!(isGreaterThan, "isGreaterThan:"); //mixin ObjcBindMethod!(isNotEqualTo, "isNotEqualTo:"); //mixin ObjcBindMethod!(doesContain, "doesContain:"); //mixin ObjcBindMethod!(isLike, "isLike:"); //mixin ObjcBindMethod!(isCaseInsensitiveLike, "isCaseInsensitiveLike:"); `; const TNSScriptingComparisonMethods = ` bool scriptingIsEqualTo (Object object) { return invokeObjcSelf!(bool, "scriptingIsEqualTo:", Object)(object); } bool scriptingIsLessThanOrEqualTo (Object object) { return invokeObjcSelf!(bool, "scriptingIsLessThanOrEqualTo:", Object)(object); } bool scriptingIsLessThan (Object object) { return invokeObjcSelf!(bool, "scriptingIsLessThan:", Object)(object); } bool scriptingIsGreaterThanOrEqualTo (Object object) { return invokeObjcSelf!(bool, "scriptingIsGreaterThanOrEqualTo:", Object)(object); } bool scriptingIsGreaterThan (Object object) { return invokeObjcSelf!(bool, "scriptingIsGreaterThan:", Object)(object); } bool scriptingBeginsWith (Object object) { return invokeObjcSelf!(bool, "scriptingBeginsWith:", Object)(object); } bool scriptingEndsWith (Object object) { return invokeObjcSelf!(bool, "scriptingEndsWith:", Object)(object); } bool scriptingContains (Object object) { return invokeObjcSelf!(bool, "scriptingContains:", Object)(object); } //mixin ObjcBindMethod!(scriptingIsEqualTo, "scriptingIsEqualTo:"); //mixin ObjcBindMethod!(scriptingIsLessThanOrEqualTo, "scriptingIsLessThanOrEqualTo:"); //mixin ObjcBindMethod!(scriptingIsLessThan, "scriptingIsLessThan:"); //mixin ObjcBindMethod!(scriptingIsGreaterThanOrEqualTo, "scriptingIsGreaterThanOrEqualTo:"); //mixin ObjcBindMethod!(scriptingIsGreaterThan, "scriptingIsGreaterThan:"); //mixin ObjcBindMethod!(scriptingBeginsWith, "scriptingBeginsWith:"); //mixin ObjcBindMethod!(scriptingEndsWith, "scriptingEndsWith:"); //mixin ObjcBindMethod!(scriptingContains, "scriptingContains:"); `; class NSLogicalTest : NSScriptWhoseTest { mixin (ObjcWrap); this () { super(typeof(this).alloc.init.objcObject); } typeof(this) init () { return invokeObjcSelf!(typeof(this), "init"); } Object initAndTestWithTests (NSArray subTests) { return invokeObjcSelf!(Object, "initAndTestWithTests:", NSArray)(subTests); } this (NSArray subTests) { typeof(this).alloc.initAndTestWithTests(subTests); } Object initOrTestWithTests (NSArray subTests) { return invokeObjcSelf!(Object, "initOrTestWithTests:", NSArray)(subTests); } Object initNotTestWithTest (NSScriptWhoseTest subTest) { return invokeObjcSelf!(Object, "initNotTestWithTest:", NSScriptWhoseTest)(subTest); } this (NSScriptWhoseTest subTest) { typeof(this).alloc.initNotTestWithTest(subTest); } } class NSSpecifierTest : NSScriptWhoseTest { mixin (ObjcWrap); this () { super(typeof(this).alloc.init.objcObject); } typeof(this) init () { return invokeObjcSelf!(typeof(this), "init"); } Object initWithObjectSpecifier (NSScriptObjectSpecifier obj1, uint compOp, Object obj2) { return invokeObjcSelf!(Object, "initWithObjectSpecifier:comparisonOperator:testObject:", NSScriptObjectSpecifier, uint, Object)(obj1, compOp, obj2); } this (NSScriptObjectSpecifier obj1, uint compOp, Object obj2) { typeof(this).alloc.initWithObjectSpecifier(obj1, compOp, obj2); } } class NSScriptWhoseTest : NSObject, INSCoding { mixin (ObjcWrap); this () { super(typeof(this).alloc.init.objcObject); } typeof(this) init () { return invokeObjcSelf!(typeof(this), "init"); } bool isTrue () { return invokeObjcSelf!(bool, "isTrue"); } void encodeWithCoder (NSCoder aCoder) { return invokeObjcSelf!(void, "encodeWithCoder:", NSCoder)(aCoder); } Object initWithCoder (NSCoder aDecoder) { return invokeObjcSelf!(Object, "initWithCoder:", NSCoder)(aDecoder); } this (NSCoder aDecoder) { typeof(this).alloc.initWithCoder(aDecoder); } }