113a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar/* 213a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar * Copyright (C) 2017 The Android Open Source Project 313a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar * 413a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar * Licensed under the Apache License, Version 2.0 (the "License"); 513a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar * you may not use this file except in compliance with the License. 613a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar * You may obtain a copy of the License at 713a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar * 813a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar * http://www.apache.org/licenses/LICENSE-2.0 913a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar * 1013a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar * Unless required by applicable law or agreed to in writing, software 1113a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar * distributed under the License is distributed on an "AS IS" BASIS, 1213a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1313a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar * See the License for the specific language governing permissions and 1413a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar * limitations under the License. 1513a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar */ 1613a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar 17bdc4c86d3dff74f6634a38e2f7b316b0e823a2c8Alan Viverettepackage androidx.room.integration.testapp.test; 1813a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar 1913a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyarimport static org.hamcrest.CoreMatchers.is; 2013a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyarimport static org.hamcrest.MatcherAssert.assertThat; 2113a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar 2204c9e28ea0be0cedcee58e4d29343ac08733d58aAurimas Liutikasimport android.content.Context; 2304c9e28ea0be0cedcee58e4d29343ac08733d58aAurimas Liutikasimport android.support.test.InstrumentationRegistry; 2404c9e28ea0be0cedcee58e4d29343ac08733d58aAurimas Liutikasimport android.support.test.filters.LargeTest; 2504c9e28ea0be0cedcee58e4d29343ac08733d58aAurimas Liutikasimport android.support.test.runner.AndroidJUnit4; 2613a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar 27bdc4c86d3dff74f6634a38e2f7b316b0e823a2c8Alan Viveretteimport androidx.room.Room; 28bdc4c86d3dff74f6634a38e2f7b316b0e823a2c8Alan Viveretteimport androidx.room.integration.testapp.TestDatabase; 29bdc4c86d3dff74f6634a38e2f7b316b0e823a2c8Alan Viveretteimport androidx.room.integration.testapp.dao.UserDao; 30bdc4c86d3dff74f6634a38e2f7b316b0e823a2c8Alan Viveretteimport androidx.room.integration.testapp.vo.AvgWeightByAge; 31bdc4c86d3dff74f6634a38e2f7b316b0e823a2c8Alan Viveretteimport androidx.room.integration.testapp.vo.User; 32bdc4c86d3dff74f6634a38e2f7b316b0e823a2c8Alan Viverette 3313a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyarimport org.junit.Before; 3413a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyarimport org.junit.Test; 3513a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyarimport org.junit.runner.RunWith; 3613a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar 3713a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyarimport java.util.Arrays; 3813a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar 3904c9e28ea0be0cedcee58e4d29343ac08733d58aAurimas Liutikas@LargeTest 4013a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar@RunWith(AndroidJUnit4.class) 4113a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyarpublic class PojoTest { 4213a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar private UserDao mUserDao; 4313a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar 4413a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar @Before 4513a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar public void createDb() { 4613a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar Context context = InstrumentationRegistry.getTargetContext(); 4713a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar TestDatabase db = Room.inMemoryDatabaseBuilder(context, TestDatabase.class).build(); 4813a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar mUserDao = db.getUserDao(); 4913a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar } 5013a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar 5113a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar @Test 5213a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar public void weightsByAge() { 5313a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar User[] users = TestUtil.createUsersArray(3, 5, 7, 10); 5413a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar users[0].setAge(10); 5513a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar users[0].setWeight(20); 5613a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar 5713a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar users[1].setAge(10); 5813a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar users[1].setWeight(30); 5913a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar 6013a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar users[2].setAge(15); 6113a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar users[2].setWeight(12); 6213a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar 6313a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar users[3].setAge(35); 6413a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar users[3].setWeight(55); 6513a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar 6613a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar mUserDao.insertAll(users); 6713a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar assertThat(mUserDao.weightByAge(), is( 6813a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar Arrays.asList( 6913a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar new AvgWeightByAge(35, 55), 7013a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar new AvgWeightByAge(10, 25), 7113a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar new AvgWeightByAge(15, 12) 7213a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar ) 7313a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar )); 7413a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar } 7513a2048db98b1cc2dbd1692b73b794527975a446Yigit Boyar} 76