/* * This software is distributed under the terms of the FSF * Gnu Lesser General Public License (see lgpl.txt). * * This program is distributed WITHOUT ANY WARRANTY. See the * GNU General Public License for more details. */ package com.scooterframework.web.util; import static org.junit.Assert.assertEquals; import java.util.List; import org.junit.Test; import com.scooterframework.orm.activerecord.ActiveRecord; import com.scooterframework.test.ScooterTestHelper; import com.scooterframework.test.models.Owner; import com.scooterframework.test.models.Visit; import com.scooterframework.web.controller.ACH; /** * OTest class * * @author (Fei) John Chen * */ public class OTest extends ScooterTestHelper { @Test public void test_allAssociatedRecordsOf() { ActiveRecord owner6 = Owner.where("id=6").getRecord(); List<ActiveRecord> records = O.allAssociatedRecordsOf(owner6, "pets.visits"); assertEquals("total visits of owner #6", 4, records.size()); } @Test public void test_allAssociatedRecordsOf_eager_loading() { ActiveRecord owner6 = Owner.where("owners.id=6").includes("pets=>visits").getRecord(); List<ActiveRecord> records = O.allAssociatedRecordsOf(owner6, "pets.visits"); assertEquals("total visits of owner #6", 4, records.size()); } @Test public void test_associatedRecordOf() { ActiveRecord visit1 = Visit.where("id=1").getRecord(); String firstName = (String)O.associatedRecordOf(visit1, "pet.owner").getField("first_name"); assertEquals("first name of owner of visit#1", "Jean", firstName); } @Test public void test_associatedRecordOf_eager_loading() { ActiveRecord visit1 = Visit.where("visits.id=1").includes("pet=>owner").getRecord(); String firstName = (String)O.associatedRecordOf(visit1, "pet.owner").getField("first_name"); assertEquals("first name of owner of visit#1", "Jean", firstName); } @Test public void test_property() { ActiveRecord visit1 = Visit.where("id=1").getRecord(); String firstName = (String)O.property(visit1, "pet.owner.first_name"); assertEquals("first name of owner of visit#1", "Jean", firstName); } @Test public void test_property_eager_loading() { ActiveRecord visit1 = Visit.where("visits.id=1").includes("pet=>owner").getRecord(); String firstName = (String)O.property(visit1, "pet.owner.first_name"); assertEquals("first name of owner of visit#1", "Jean", firstName); } @Test public void test_value() { ActiveRecord visit1 = Visit.where("id=1").getRecord(); ACH.getAC().storeToRequest("visit1", visit1); String firstName = (String)O.value("visit1.pet.owner.first_name"); assertEquals("first name of owner of visit#1", "Jean", firstName); } @Test public void test_value_eager_loading() { ActiveRecord visit1 = Visit.where("visits.id=1").includes("pet=>owner").getRecord(); ACH.getAC().storeToRequest("visit1", visit1); String firstName = (String)O.value("visit1.pet.owner.first_name"); assertEquals("first name of owner of visit#1", "Jean", firstName); } }