/* * Copyright (C) 2016 Mobile Jazz * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.mobilejazz.cacheio; import android.support.test.InstrumentationRegistry; import android.support.test.runner.AndroidJUnit4; import com.mobilejazz.cacheio.model.DummyUser; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import java.util.*; import java.util.concurrent.*; import static org.assertj.core.api.Assertions.assertThat; @RunWith(AndroidJUnit4.class) public class CacheIOTests { public static final int FAKE_USER_ID = 1234; public static final String FAKE_USER_NAME = "Jose Luis"; public static final String FAKE_DUMMY_USER_KEY = "test.dummy"; private CacheIO cacheIO; @Before public void setUp() throws Exception { //cacheIO = new CacheIO.Builder(InstrumentationRegistry.getContext()) // .identifier("") cacheIO = CacheIO.with(InstrumentationRegistry.getContext()) .identifier("cacheio_test") .executor(Executors.newSingleThreadExecutor()) .build(); } @Test public void shouldGetAObject() throws Exception { SyncCache<String, DummyUser> syncCache = givenADummyUserSyncCache(); syncCache.put(FAKE_DUMMY_USER_KEY, givenDummyUser(), Long.MAX_VALUE, TimeUnit.SECONDS); DummyUser dummyUser = syncCache.get(FAKE_DUMMY_USER_KEY); assertThat(dummyUser).isNotNull(); assertThat(dummyUser.getId()).isEqualTo(FAKE_USER_ID); assertThat(dummyUser.getName()).isEqualTo(FAKE_USER_NAME); } @Test public void shouldGetAllTheObjects() throws Exception { // Given SyncCache<String, DummyUser> syncCache = givenADummyUserSyncCache(); DummyUser dummyUserOne = givenDummyUser(); DummyUser dummyUserTwo = givenDummyUser(); Map<String, DummyUser> dummyUserMap = new HashMap<>(); dummyUserMap.put("fake.dummy.user.one", dummyUserOne); dummyUserMap.put("fake.dummy.user.two", dummyUserTwo); syncCache.putAll(dummyUserMap, Long.MAX_VALUE, TimeUnit.SECONDS); // When ArrayList<String> keys = new ArrayList<>(); Collections.addAll(keys, "fake.dummy.user.one", "fake.dummy.user.two"); Map<String, DummyUser> allDummyUsers = syncCache.getAll(keys); assertThat(allDummyUsers).isNotNull(); assertThat(allDummyUsers).isNotEmpty(); DummyUser fakeDummyUserOne = allDummyUsers.get("fake.dummy.user.one"); DummyUser fakeDummyUserTwo = allDummyUsers.get("fake.dummy.user.two"); assertThat(fakeDummyUserOne).isNotNull(); assertThat(fakeDummyUserTwo).isNotNull(); assertThat(fakeDummyUserOne.getId()).isEqualTo(dummyUserOne.getId()); assertThat(fakeDummyUserOne.getName()).isEqualTo(dummyUserOne.getName()); assertThat(fakeDummyUserTwo.getId()).isEqualTo(fakeDummyUserTwo.getId()); assertThat(fakeDummyUserTwo.getName()).isEqualTo(fakeDummyUserTwo.getName()); } private SyncCache<String, DummyUser> givenADummyUserSyncCache() { return cacheIO.newSyncCache(String.class, DummyUser.class); } private DummyUser givenDummyUser() { return DummyUser.create(FAKE_USER_ID, FAKE_USER_NAME); } }