package com.github.bingoohuang.springrestclient.tests.api; import com.github.bingoohuang.springrestclient.spring.SpringRestClientConfig; import com.github.bingoohuang.springrestclient.spring.api.EasyHiTid; import com.github.bingoohuang.springrestclient.spring.api.TidApi; import com.github.bingoohuang.utils.redis.Redis; import mockit.Mock; import mockit.MockUp; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = SpringRestClientConfig.class) public class TidApiTest { @Autowired TidApi tidApi; @Autowired Redis redis; @Test public void getMobile() { EasyHiTid.tid.set("1000"); String mobile = tidApi.getMobile(); assertThat(mobile, is(equalTo("bingoo:1000"))); } @Test public <T extends TidApi> void getMobile2() { redis.del("Cache:TidApi:Mobile:1000"); EasyHiTid.tid.set("1000"); new MockUp<T>() { @Mock(invocations = 1) String getMobile2() { return "bingoo:1000"; } }; String mobile = tidApi.getMobile2(); assertThat(mobile, is(equalTo("bingoo:1000"))); new MockUp<T>() { @Mock(invocations = 0) String getMobile2() { return "bingoo:2000"; } }; mobile = tidApi.getMobile2(); assertThat(mobile, is(equalTo("bingoo:1000"))); } }