ark

Create your complex domain object graphs for test cases, easily

License

License

GroupId

GroupId

com.daveayan
ArtifactId

ArtifactId

ark
Last Version

Last Version

1.3
Release Date

Release Date

Type

Type

jar
Description

Description

ark
Create your complex domain object graphs for test cases, easily
Project URL

Project URL

https://github.com/daveayan/ark

Download ark

Filename Size
ark-1.3.pom
ark-1.3.jar 1 KB
Browse

How to add to project

<!-- https://jarcasting.com/artifacts/com.daveayan/ark/ -->
<dependency>
    <groupId>com.daveayan</groupId>
    <artifactId>ark</artifactId>
    <version>1.3</version>
</dependency>
// https://jarcasting.com/artifacts/com.daveayan/ark/
implementation 'com.daveayan:ark:1.3'
// https://jarcasting.com/artifacts/com.daveayan/ark/
implementation ("com.daveayan:ark:1.3")
'com.daveayan:ark:jar:1.3'
<dependency org="com.daveayan" name="ark" rev="1.3">
  <artifact name="ark" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.daveayan', module='ark', version='1.3')
)
libraryDependencies += "com.daveayan" % "ark" % "1.3"
[com.daveayan/ark "1.3"]

Dependencies

compile (7)

Group / Artifact Type Version
com.daveayan : mirage jar 1.9
joda-time : joda-time jar 2.4
com.daveayan : rjson jar 1.8
org.mockito : mockito-all jar 1.10.8
org.springframework : spring-mock jar 2.0.8
javax.servlet : servlet-api jar 2.5
org.springframework : spring-core jar 3.2.11.RELEASE

test (2)

Group / Artifact Type Version
junit : junit jar 4.5
org.codehaus.groovy : groovy-all jar 2.1.3

Project Modules

There are no modules declared in this project.

ark

Build Status

What is Ark?

An open source framework to allow creation of objects, set values on fields and get values from fields.

Whats the purpose?

Ark is meant to be used only for unit testing. It may not have good performance and security that is demanded of production code.

usage

From your java code one of the following methods can be used

To instantiate an object with any constructor (private, protected, public, default)

import static com.daveayan.ark.Ark.*

instantiate(Class< ? > clazz)

instantiate(String fully_qualified_class_name)

Example: To instantiate an object of type Person:

instantiate(Person.class)

OR

instantiate("com.daveayan.ark.sample.domain.Person")

To get the value of any field (private, protected, public, default) on the object.

import static com.daveayan.ark.Ark.*

on(your_object).get_value_on(your_field_name)

Example: To get a field an object of type Person:

Person person = new Person()

String name = (String) on(person).get_value_on("name")

To set the value of any field (private, protected, public, default) on the object.

import static com.daveayan.ark.Ark.*

on(your_object).set(your_field_name).value(value_to_set)

Example: To get a field an object of type Person:

Person person = new Person()

on(person).set("name").value("QWERTY")

To instantiate a complex object using a map.

To create a fully loaded isntance of the Person object, the following can be used: (Shown in Groovy)

	  import static com.daveayan.ark.Ark.*
	  
	  def actual_object = construct_from_map(
		[	'class_name': 'com.daveayan.ark.sample.domain.Person',
			'name': 'AAA BBB',
			'addresses': [
					'collection_type': 'java.util.HashMap',
					'Home': [
						'class_name': 'com.daveayan.ark.sample.domain.Address',
						'address': '456 main st',
						'city': 'Dublin',
						'state': 'OH',
						'zip': '67890'
						],
					'Office': new Address('123 High St', 'Columbus', 'OH', '12345')
				],
			'phones': [
					[	'collection_type': 'java.util.ArrayList'],
					[	'class_name': 'com.daveayan.ark.sample.domain.PhoneNumber',
						'areaCode': '987',
						'number': '654321'],
					new PhoneNumber('876', '543210')
				],
			'accounts': [
					[	'collection_type': 'java.util.ArrayList'],
					[	'class_name': 'com.daveayan.ark.sample.domain.Account',
						'accountNumber': 736252,
						'balance': 122.333f,
						'lastUpdate': new Date()],
					new Account(3323, 7474.535)
				],
			'drives': [
					[	'collection_type': 'java.util.ArrayList'],
					[	'class_name': 'com.daveayan.ark.sample.domain.Car'],
					[	'class_name': 'com.daveayan.ark.sample.domain.Car',
						'numberOfWheels': 8],
					 	new Scooter()
				]])

Versions

Version
1.3
1.2
1.1
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0