// Path: library/src/androidTest/java/com/thefinestartist/royal/entities/Dog.java
// public class Dog extends RealmObject {
// 
//     @Index
//     private String name;
//     private long age;
//     private float height;
//     private double weight;
//     private boolean hasTail;
//     private Date birthday;
//     private Owner owner;
// 
//     public Dog() {
//     }
// 
//     public Dog(String name) {
//         this.name = name;
//     }
// 
//     public Owner getOwner() {
//         return owner;
//     }
// 
//     public void setOwner(Owner owner) {
//         this.owner = owner;
//     }
// 
//     public Date getBirthday() {
//         return birthday;
//     }
// 
//     public void setBirthday(Date birthday) {
//         this.birthday = birthday;
//     }
// 
//     public boolean isHasTail() {
//         return hasTail;
//     }
// 
//     public void setHasTail(boolean hasTail) {
//         this.hasTail = hasTail;
//     }
// 
//     public double getWeight() {
//         return weight;
//     }
// 
//     public void setWeight(double weight) {
//         this.weight = weight;
//     }
// 
//     public float getHeight() {
//         return height;
//     }
// 
//     public void setHeight(float height) {
//         this.height = height;
//     }
// 
//     public long getAge() {
//         return age;
//     }
// 
//     public void setAge(long age) {
//         this.age = age;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public static String getStaticName(Dog dog) {
//         return dog.name;
//     }
// }
// 
// Path: library/src/androidTest/java/com/thefinestartist/royal/entities/DogPrimaryKey.java
// public class DogPrimaryKey extends RealmObject {
// 
//     @PrimaryKey
//     private long id;
//     private String name;
//     private long age;
//     private float height;
//     private double weight;
//     private boolean hasTail;
//     private Date birthday;
//     private Owner owner;
// 
//     public DogPrimaryKey() {
// 
//     }
// 
//     public DogPrimaryKey(long id, String name) {
//         this.id = id;
//         this.name = name;
//     }
// 
//     public DogPrimaryKey(String name) {
//         this.name = name;
//     }
// 
// 
//     public long getId() {
//         return id;
//     }
// 
//     public void setId(long id) {
//         this.id = id;
//     }
// 
//     public Owner getOwner() {
//         return owner;
//     }
// 
//     public void setOwner(Owner owner) {
//         this.owner = owner;
//     }
// 
//     public Date getBirthday() {
//         return birthday;
//     }
// 
//     public void setBirthday(Date birthday) {
//         this.birthday = birthday;
//     }
// 
//     public boolean isHasTail() {
//         return hasTail;
//     }
// 
//     public void setHasTail(boolean hasTail) {
//         this.hasTail = hasTail;
//     }
// 
//     public double getWeight() {
//         return weight;
//     }
// 
//     public void setWeight(double weight) {
//         this.weight = weight;
//     }
// 
//     public float getHeight() {
//         return height;
//     }
// 
//     public void setHeight(float height) {
//         this.height = height;
//     }
// 
//     public long getAge() {
//         return age;
//     }
// 
//     public void setAge(long age) {
//         this.age = age;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// }


import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.test.AndroidTestCase;
import com.thefinestartist.royal.entities.Dog;
import com.thefinestartist.royal.entities.DogPrimaryKey;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import io.realm.Realm;
import io.realm.RealmConfiguration;
import io.realm.RealmObject;
import io.realm.RealmQuery;
import io.realm.RealmResults;
package com.thefinestartist.royal;





/**
 * Created by TheFinestArtist on 7/5/15.
 */

public class RoyalTransactionTest extends AndroidTestCase {

    @Override
    protected void setUp() throws Exception {
        Royal.joinWith(getContext());
    }

    @Override
    protected void tearDown() throws Exception {
    }

    public void testSave1() {
        // 1. Realm Setup
        RealmConfiguration realmConfig1 = new RealmConfiguration.Builder(getContext()).name("1testSave1.realm").build();
        Realm.deleteRealm(realmConfig1);
        Realm realm1 = Realm.getInstance(realmConfig1);

        // 2. Object Setup
        Dog dog1 = new Dog();
        dog1.setName("Kitty1");

        // 3. RoyalTransaction.save()
        RoyalTransaction.save(realm1, dog1);

        // 4. Query
        RealmQuery<Dog> query = realm1.where(Dog.class);
        RealmResults<Dog> dogs = query.findAll();

        // 5. Assert
        assertNotNull(dogs);
        assertEquals(1, dogs.size());
        assertEquals("Kitty1", dogs.get(0).getName());

        // 6. Realm Close
        realm1.close();
    }

// Path: library/src/androidTest/java/com/thefinestartist/royal/entities/Dog.java
// public class Dog extends RealmObject {
// 
//     @Index
//     private String name;
//     private long age;
//     private float height;
//     private double weight;
//     private boolean hasTail;
//     private Date birthday;
//     private Owner owner;
// 
//     public Dog() {
//     }
// 
//     public Dog(String name) {
//         this.name = name;
//     }
// 
//     public Owner getOwner() {
//         return owner;
//     }
// 
//     public void setOwner(Owner owner) {
//         this.owner = owner;
//     }
// 
//     public Date getBirthday() {
//         return birthday;
//     }
// 
//     public void setBirthday(Date birthday) {
//         this.birthday = birthday;
//     }
// 
//     public boolean isHasTail() {
//         return hasTail;
//     }
// 
//     public void setHasTail(boolean hasTail) {
//         this.hasTail = hasTail;
//     }
// 
//     public double getWeight() {
//         return weight;
//     }
// 
//     public void setWeight(double weight) {
//         this.weight = weight;
//     }
// 
//     public float getHeight() {
//         return height;
//     }
// 
//     public void setHeight(float height) {
//         this.height = height;
//     }
// 
//     public long getAge() {
//         return age;
//     }
// 
//     public void setAge(long age) {
//         this.age = age;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public static String getStaticName(Dog dog) {
//         return dog.name;
//     }
// }
// 
// Path: library/src/androidTest/java/com/thefinestartist/royal/entities/DogPrimaryKey.java
// public class DogPrimaryKey extends RealmObject {
// 
//     @PrimaryKey
//     private long id;
//     private String name;
//     private long age;
//     private float height;
//     private double weight;
//     private boolean hasTail;
//     private Date birthday;
//     private Owner owner;
// 
//     public DogPrimaryKey() {
// 
//     }
// 
//     public DogPrimaryKey(long id, String name) {
//         this.id = id;
//         this.name = name;
//     }
// 
//     public DogPrimaryKey(String name) {
//         this.name = name;
//     }
// 
// 
//     public long getId() {
//         return id;
//     }
// 
//     public void setId(long id) {
//         this.id = id;
//     }
// 
//     public Owner getOwner() {
//         return owner;
//     }
// 
//     public void setOwner(Owner owner) {
//         this.owner = owner;
//     }
// 
//     public Date getBirthday() {
//         return birthday;
//     }
// 
//     public void setBirthday(Date birthday) {
//         this.birthday = birthday;
//     }
// 
//     public boolean isHasTail() {
//         return hasTail;
//     }
// 
//     public void setHasTail(boolean hasTail) {
//         this.hasTail = hasTail;
//     }
// 
//     public double getWeight() {
//         return weight;
//     }
// 
//     public void setWeight(double weight) {
//         this.weight = weight;
//     }
// 
//     public float getHeight() {
//         return height;
//     }
// 
//     public void setHeight(float height) {
//         this.height = height;
//     }
// 
//     public long getAge() {
//         return age;
//     }
// 
//     public void setAge(long age) {
//         this.age = age;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// }


// Path: library/src/androidTest/java/com/thefinestartist/royal/RoyalTransactionTest.java
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.test.AndroidTestCase;
import com.thefinestartist.royal.entities.Dog;
import com.thefinestartist.royal.entities.DogPrimaryKey;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import io.realm.Realm;
import io.realm.RealmConfiguration;
import io.realm.RealmObject;
import io.realm.RealmQuery;
import io.realm.RealmResults;

package com.thefinestartist.royal;





/**
 * Created by TheFinestArtist on 7/5/15.
 */

public class RoyalTransactionTest extends AndroidTestCase {

    @Override
    protected void setUp() throws Exception {
        Royal.joinWith(getContext());
    }

    @Override
    protected void tearDown() throws Exception {
    }

    public void testSave1() {
        // 1. Realm Setup
        RealmConfiguration realmConfig1 = new RealmConfiguration.Builder(getContext()).name("1testSave1.realm").build();
        Realm.deleteRealm(realmConfig1);
        Realm realm1 = Realm.getInstance(realmConfig1);

        // 2. Object Setup
        Dog dog1 = new Dog();
        dog1.setName("Kitty1");

        // 3. RoyalTransaction.save()
        RoyalTransaction.save(realm1, dog1);

        // 4. Query
        RealmQuery<Dog> query = realm1.where(Dog.class);
        RealmResults<Dog> dogs = query.findAll();

        // 5. Assert
        assertNotNull(dogs);
        assertEquals(1, dogs.size());
        assertEquals("Kitty1", dogs.get(0).getName());

        // 6. Realm Close
        realm1.close();
    }

    public void testSave2() {