Skip to content

Instantly share code, notes, and snippets.

@musketyr
Created July 7, 2011 15:42
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save musketyr/1069793 to your computer and use it in GitHub Desktop.
Save musketyr/1069793 to your computer and use it in GitHub Desktop.
Gaelyk Bindings Specification
package groovyx.gaelyk
import groovyx.gaelyk.logging.LoggerAccessor;
import spock.lang.Specification
import spock.lang.Unroll;
import com.google.appengine.api.LifecycleManager;
import com.google.appengine.api.NamespaceManager;
import com.google.appengine.api.backends.BackendService;
import com.google.appengine.api.blobstore.BlobstoreService;
import com.google.appengine.api.capabilities.CapabilitiesService;
import com.google.appengine.api.channel.ChannelService;
import com.google.appengine.api.datastore.DatastoreService
import com.google.appengine.api.datastore.DatastoreServiceFactory;
import com.google.appengine.api.files.FileService;
import com.google.appengine.api.mail.MailService;
import com.google.appengine.api.memcache.MemcacheService;
import com.google.appengine.api.oauth.OAuthService;
import com.google.appengine.api.taskqueue.Queue;
import com.google.appengine.api.urlfetch.URLFetchService;
import com.google.appengine.api.users.User;
import com.google.appengine.api.users.UserService;
import com.google.appengine.api.xmpp.XMPPService;
class GaelykBindingsSpec extends Specification{
@Unroll({ "Cheking injection of $property, it should have type $clazz" })
def 'Check injected with right type'(){
when:
def enhanced = new GroovyShell().evaluate '''
@groovyx.gaelyk.GaelykBindings
class TestEnhanced {}
new TestEnhanced()
'''
then:
enhanced.hasProperty(property)
enhanced.metaClass.getMetaProperty(property).getType() == clazz
where:
property | clazz
'datastore' | DatastoreService
'memcache' | MemcacheService
'urlFetch' | URLFetchService
'mail' | MailService
'images' | ImagesServiceWrapper
'users' | UserService
'user' | User
'defaultQueue' | Queue
'queues' | QueueAccessor
"xmpp" | XMPPService
"localMode" | Boolean
"blobstore" | BlobstoreService
"app" | Map
"logger" | LoggerAccessor
"oauth" | OAuthService
"namespace" | Class
"capabilities" | CapabilitiesService
"channel" | ChannelService
"files" | FileService
"backends" | BackendService
"lifecycle" | LifecycleManager
}
def 'Check existing method or property'(){
when:
def enhanced = new GroovyShell().evaluate '''
@groovyx.gaelyk.GaelykBindings
class TestEnhanced {
Map datastore
}
new TestEnhanced()
'''
then:
enhanced.hasProperty('datastore')
enhanced.metaClass.getMetaProperty('datastore').getType() == Map
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment