aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2015-10-05 00:17:10 +0900
committerKazuki Yamaguchi <k@rhe.jp>2015-10-05 00:17:10 +0900
commit413343a8cd7991b6ce4c0184df4fdc90a6a0a167 (patch)
tree2e297d97b95325d0dbc5c5335c70d127d9f1a315
parent9487d48534f5044c2d24efba539cc21361308293 (diff)
downloadSmileEssence-413343a8cd7991b6ce4c0184df4fdc90a6a0a167.tar.gz
テストがパスするよう修正。新しいクラスのテストはまだ書いてない
-rw-r--r--app/src/androidTest/java/net/lacolaco/smileessence/command/CommandsTest.java2
-rw-r--r--app/src/androidTest/java/net/lacolaco/smileessence/command/NanigajaTest.java20
-rw-r--r--app/src/androidTest/java/net/lacolaco/smileessence/preference/SharedPreferenceHelperTest.java25
-rw-r--r--app/src/androidTest/java/net/lacolaco/smileessence/preference/UserPreferenceHelperTest.java10
-rw-r--r--app/src/androidTest/java/net/lacolaco/smileessence/twitter/TweetBuilderTest.java12
-rw-r--r--app/src/androidTest/java/net/lacolaco/smileessence/twitter/TwitterUtilsTest.java9
-rw-r--r--app/src/androidTest/java/net/lacolaco/smileessence/twitter/UserStreamListenerTest.java119
-rw-r--r--app/src/androidTest/java/net/lacolaco/smileessence/util/TwitterMock.java49
-rw-r--r--app/src/androidTest/java/net/lacolaco/smileessence/view/adapter/CustomListAdapterTest.java14
-rw-r--r--app/src/androidTest/java/net/lacolaco/smileessence/viewmodel/EventViewModelTest.java18
-rw-r--r--app/src/androidTest/java/net/lacolaco/smileessence/viewmodel/MessageViewModelTest.java14
-rw-r--r--app/src/androidTest/java/net/lacolaco/smileessence/viewmodel/StatusViewModelTest.java22
-rw-r--r--app/src/androidTest/java/net/lacolaco/smileessence/viewmodel/UserViewModelTest.java96
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/Application.java3
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandNanigaja.java8
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/preference/SharedPreferenceHelper.java12
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/viewmodel/EventViewModel.java8
17 files changed, 144 insertions, 297 deletions
diff --git a/app/src/androidTest/java/net/lacolaco/smileessence/command/CommandsTest.java b/app/src/androidTest/java/net/lacolaco/smileessence/command/CommandsTest.java
index f86cbab4..d7c77831 100644
--- a/app/src/androidTest/java/net/lacolaco/smileessence/command/CommandsTest.java
+++ b/app/src/androidTest/java/net/lacolaco/smileessence/command/CommandsTest.java
@@ -46,7 +46,7 @@ public class CommandsTest extends ActivityInstrumentationTestCase2<MainActivity>
// {
// final Activity activity = getActivity();
// final Account account = new Account(mock.getAccessToken(), mock.getAccessTokenSecret(), mock.getUserMock().getId(), mock.getUserMock().getScreenName());
-// final Status status = mock.getStatusMock();
+// final Status status = mock.getTweetMock();
// Tweet.fromTwitter(status);
// getActivity().runOnUiThread(new Runnable()
// {
diff --git a/app/src/androidTest/java/net/lacolaco/smileessence/command/NanigajaTest.java b/app/src/androidTest/java/net/lacolaco/smileessence/command/NanigajaTest.java
index 90d26193..b0973f40 100644
--- a/app/src/androidTest/java/net/lacolaco/smileessence/command/NanigajaTest.java
+++ b/app/src/androidTest/java/net/lacolaco/smileessence/command/NanigajaTest.java
@@ -27,15 +27,14 @@ package net.lacolaco.smileessence.command;
import android.content.Context;
import android.content.res.Configuration;
import android.test.ActivityInstrumentationTestCase2;
-
+import net.lacolaco.smileessence.Application;
import net.lacolaco.smileessence.activity.MainActivity;
import net.lacolaco.smileessence.command.status.StatusCommandNanigaja;
+import net.lacolaco.smileessence.entity.Tweet;
import net.lacolaco.smileessence.util.TwitterMock;
import java.util.Locale;
-import twitter4j.Status;
-
public class NanigajaTest extends ActivityInstrumentationTestCase2<MainActivity> {
private TwitterMock mock;
@@ -48,27 +47,28 @@ public class NanigajaTest extends ActivityInstrumentationTestCase2<MainActivity>
public void setUp() throws Exception {
this.mock = new TwitterMock(getInstrumentation().getContext());
Context context = getActivity();
+ Application.getInstance().setCurrentAccount(mock.getAccount());
Configuration config = context.getResources().getConfiguration();
config.locale = Locale.JAPANESE;
context.getResources().updateConfiguration(config, context.getResources().getDisplayMetrics());
}
public void testBuildNormal() throws Exception {
- Status status = mock.getStatusMock();
- StatusCommandNanigaja nanigaja = new StatusCommandNanigaja(getActivity(), status, mock.getAccount());
+ Tweet status = mock.getTweetMock();
+ StatusCommandNanigaja nanigaja = new StatusCommandNanigaja(getActivity(), status);
assertEquals("な~にが" + status.getText() + "じゃ", nanigaja.build());
}
public void testBuildReply() throws Exception {
- Status status = mock.getReplyMock();
- StatusCommandNanigaja nanigaja = new StatusCommandNanigaja(getActivity(), status, mock.getAccount());
+ Tweet status = mock.getReplyMock();
+ StatusCommandNanigaja nanigaja = new StatusCommandNanigaja(getActivity(), status);
assertTrue(nanigaja.build().startsWith("@" + status.getUser().getScreenName() + " な~にが"));
}
public void testBuildRetweet() throws Exception {
- Status status = mock.getRetweetMock();
- StatusCommandNanigaja nanigaja = new StatusCommandNanigaja(getActivity(), status, mock.getAccount());
- assertTrue(nanigaja.build().startsWith("@" + status.getRetweetedStatus().getUser().getScreenName() + " な~にが"));
+ Tweet status = mock.getRetweetMock();
+ StatusCommandNanigaja nanigaja = new StatusCommandNanigaja(getActivity(), status);
+ assertTrue(nanigaja.build().startsWith("@" + status.getRetweetedTweet().getUser().getScreenName() + " な~にが"));
}
@Override
diff --git a/app/src/androidTest/java/net/lacolaco/smileessence/preference/SharedPreferenceHelperTest.java b/app/src/androidTest/java/net/lacolaco/smileessence/preference/SharedPreferenceHelperTest.java
index 66c60ea1..e5a517cb 100644
--- a/app/src/androidTest/java/net/lacolaco/smileessence/preference/SharedPreferenceHelperTest.java
+++ b/app/src/androidTest/java/net/lacolaco/smileessence/preference/SharedPreferenceHelperTest.java
@@ -24,6 +24,8 @@
package net.lacolaco.smileessence.preference;
+import android.content.Context;
+import android.content.SharedPreferences;
import android.test.InstrumentationTestCase;
public class SharedPreferenceHelperTest extends InstrumentationTestCase {
@@ -33,28 +35,33 @@ public class SharedPreferenceHelperTest extends InstrumentationTestCase {
@Override
public void setUp() throws Exception {
//can't create on test context.
- helper = new SharedPreferenceHelper(getInstrumentation().getTargetContext(), "TestPreference");
- assertTrue(helper.putValue("test.sample", "test"));
- assertTrue(helper.putValue("test.empty", ""));
+ helper = new SharedPreferenceHelper() {
+ @Override
+ protected SharedPreferences getPreferences() {
+ return getInstrumentation().getTargetContext().getSharedPreferences("TestPreference", Context.MODE_PRIVATE);
+ }
+ };
+ assertTrue(helper.set("test.sample", "test"));
+ assertTrue(helper.set("test.empty", ""));
}
public void testGetProperty() throws Exception {
- String sample = helper.getValue("test.sample", "");
+ String sample = helper.get("test.sample", "");
assertEquals("test", sample);
}
public void testSetProperty() throws Exception {
- assertTrue(helper.putValue("test.sample", "test1"));
- assertEquals("test1", helper.getValue("test.sample", ""));
+ assertTrue(helper.set("test.sample", "test1"));
+ assertEquals("test1", helper.get("test.sample", "notCorrect"));
}
public void testGetEmptyValue() throws Exception {
- String empty = helper.getValue("test.empty", "");
+ String empty = helper.get("test.empty", "ax");
assertEquals("", empty);
}
public void testNotExists() throws Exception {
- String notExists = helper.getValue("test.null", "");
- assertEquals("", notExists);
+ String notExists = helper.get("test.null", "no");
+ assertEquals("no", notExists);
}
}
diff --git a/app/src/androidTest/java/net/lacolaco/smileessence/preference/UserPreferenceHelperTest.java b/app/src/androidTest/java/net/lacolaco/smileessence/preference/UserPreferenceHelperTest.java
index e7a6043e..2b21b13c 100644
--- a/app/src/androidTest/java/net/lacolaco/smileessence/preference/UserPreferenceHelperTest.java
+++ b/app/src/androidTest/java/net/lacolaco/smileessence/preference/UserPreferenceHelperTest.java
@@ -34,19 +34,19 @@ public class UserPreferenceHelperTest extends AndroidTestCase {
@Override
public void setUp() throws Exception {
- pref = new UserPreferenceHelper(getContext());
+ pref = UserPreferenceHelper.getInstance();
}
public void testNotFound() throws Exception {
- assertEquals("", pref.getValue(0, ""));
+ assertEquals("", pref.get(0, ""));
}
public void testUseDefault() throws Exception {
- assertNotSame(0, pref.getValue(R.string.key_setting_text_size, 10));
+ assertNotSame(0, pref.get(R.string.key_setting_text_size, 10));
}
public void testPutAndGet() throws Exception {
- assertEquals(true, pref.putValue(R.string.key_test_preference, 10));
- assertEquals(10, pref.getValue(R.string.key_test_preference, 0));
+ assertEquals(true, pref.set(R.string.key_test_preference, 10));
+ assertEquals(10, pref.get(R.string.key_test_preference, 0));
}
}
diff --git a/app/src/androidTest/java/net/lacolaco/smileessence/twitter/TweetBuilderTest.java b/app/src/androidTest/java/net/lacolaco/smileessence/twitter/TweetBuilderTest.java
index fa387466..8fd48906 100644
--- a/app/src/androidTest/java/net/lacolaco/smileessence/twitter/TweetBuilderTest.java
+++ b/app/src/androidTest/java/net/lacolaco/smileessence/twitter/TweetBuilderTest.java
@@ -25,11 +25,9 @@
package net.lacolaco.smileessence.twitter;
import android.test.InstrumentationTestCase;
-
-import net.lacolaco.smileessence.util.TwitterMock;
-
-import twitter4j.Status;
+import net.lacolaco.smileessence.entity.Tweet;
import net.lacolaco.smileessence.entity.User;
+import net.lacolaco.smileessence.util.TwitterMock;
public class TweetBuilderTest extends InstrumentationTestCase {
@@ -42,7 +40,7 @@ public class TweetBuilderTest extends InstrumentationTestCase {
public void testBuilder() throws Exception {
User user = mock.getUserMock();
- Status status = mock.getReplyMock();
+ Tweet status = mock.getReplyMock();
TweetBuilder builder = new TweetBuilder();
assertEquals("", builder.buildText());
builder.addScreenName(user.getScreenName());
@@ -50,8 +48,8 @@ public class TweetBuilderTest extends InstrumentationTestCase {
assertEquals("@laco0416 test", builder.buildText());
builder.appendText(" #test");
assertEquals("@laco0416 test #test", builder.buildText());
- builder.setInReplyToStatusID(status.getInReplyToStatusId());
- assertEquals(status.getInReplyToStatusId(), builder.build().getInReplyToStatusId());
+ builder.setInReplyToStatusID(status.getInReplyTo());
+ assertEquals(status.getInReplyTo(), builder.build().getInReplyToStatusId());
builder.setMediaPath("");
assertNotNull(builder.build());
}
diff --git a/app/src/androidTest/java/net/lacolaco/smileessence/twitter/TwitterUtilsTest.java b/app/src/androidTest/java/net/lacolaco/smileessence/twitter/TwitterUtilsTest.java
index d73fce03..9d9f9372 100644
--- a/app/src/androidTest/java/net/lacolaco/smileessence/twitter/TwitterUtilsTest.java
+++ b/app/src/androidTest/java/net/lacolaco/smileessence/twitter/TwitterUtilsTest.java
@@ -25,14 +25,9 @@
package net.lacolaco.smileessence.twitter;
import android.test.InstrumentationTestCase;
-
import com.twitter.Validator;
import junit.framework.Assert;
-import net.lacolaco.smileessence.util.TwitterMock;
-
-import twitter4j.Status;
-
public class TwitterUtilsTest extends InstrumentationTestCase {
public void testLength() throws Exception {
@@ -41,7 +36,7 @@ public class TwitterUtilsTest extends InstrumentationTestCase {
text = "test.com";
assertNotSame(text.length(), new Validator().getTweetLength(text));
}
-
+/* TODO
public void testURL() throws Exception {
String screenName = "laco0416";
@@ -56,5 +51,5 @@ public class TwitterUtilsTest extends InstrumentationTestCase {
Status retweetMock = mock.getRetweetMock();
assertEquals(3, TwitterUtils.getScreenNames(retweetMock, null).size());
assertEquals(2, TwitterUtils.getScreenNames(retweetMock, retweetMock.getUser().getScreenName()).size());
- }
+ }*/
}
diff --git a/app/src/androidTest/java/net/lacolaco/smileessence/twitter/UserStreamListenerTest.java b/app/src/androidTest/java/net/lacolaco/smileessence/twitter/UserStreamListenerTest.java
index 0fe3566b..5e4edb2d 100644
--- a/app/src/androidTest/java/net/lacolaco/smileessence/twitter/UserStreamListenerTest.java
+++ b/app/src/androidTest/java/net/lacolaco/smileessence/twitter/UserStreamListenerTest.java
@@ -25,24 +25,19 @@
package net.lacolaco.smileessence.twitter;
import android.test.ActivityInstrumentationTestCase2;
-
import net.lacolaco.smileessence.activity.MainActivity;
-import net.lacolaco.smileessence.entity.Account;
+import net.lacolaco.smileessence.entity.Tweet;
+import net.lacolaco.smileessence.entity.User;
import net.lacolaco.smileessence.util.TwitterMock;
-import net.lacolaco.smileessence.view.adapter.CustomListAdapter;
-
-import net.lacolaco.smileessence.entity.DirectMessage;
+import net.lacolaco.smileessence.viewmodel.EventViewModel;
+import net.lacolaco.smileessence.viewmodel.StatusViewModel;
import twitter4j.Status;
import twitter4j.StatusDeletionNotice;
-import net.lacolaco.smileessence.entity.User;
public class UserStreamListenerTest extends ActivityInstrumentationTestCase2<MainActivity> {
TwitterMock mock;
UserStreamListener listener;
- private String token;
- private User user;
- private String secret;
public UserStreamListenerTest() {
super(MainActivity.class);
@@ -51,28 +46,18 @@ public class UserStreamListenerTest extends ActivityInstrumentationTestCase2<Mai
@Override
public void setUp() throws Exception {
mock = new TwitterMock(getInstrumentation().getContext());
- listener = new UserStreamListener(getActivity());
- token = mock.getAccessToken();
- secret = mock.getAccessTokenSecret();
- user = mock.getUserMock();
- getActivity().runOnUiThread(new Runnable() {
- @Override
- public void run() {
- Account account = new Account(token, secret, user.getId(), user.getScreenName());
- getActivity().setCurrentAccount(account);
- getActivity().initializeView();
- }
- });
- Thread.sleep(500);
+ listener = new UserStreamListener(mock.getAccount());
}
public void testOnStatus() throws Exception {
- final Status status = mock.getStatusMock();
- CustomListAdapter<?> home = getActivity().getListAdapter(MainActivity.AdapterID.Home);
+ Status status = mock.getTweetRawMock();
+ Container<StatusViewModel> a = new Container<>();
+ Container<Long> b = new Container<>();
+ StatusFilter.getInstance().register(this, StatusViewModel.class,
+ gotVm -> a.object = gotVm,
+ gotId -> b.object = gotId);
listener.onStatus(status);
- home.updateForce();
- Thread.sleep(500);
- assertEquals(1, home.getCount());
+ assertEquals(Tweet.fromTwitter(status, 0), a.object.getTweet());
listener.onDeletionNotice(new StatusDeletionNotice() {
@Override
public long getStatusId() {
@@ -89,77 +74,29 @@ public class UserStreamListenerTest extends ActivityInstrumentationTestCase2<Mai
return 0;
}
});
- home.updateForce();
- Thread.sleep(500);
- assertEquals(0, home.getCount());
- }
-
- public void testOnMention() throws Exception {
- final Status status = mock.getReplyMock();
- CustomListAdapter<?> mentions = getActivity().getListAdapter(MainActivity.AdapterID.Mentions);
- listener.onStatus(status);
- mentions.updateForce();
- Thread.sleep(500);
- assertEquals(1, mentions.getCount());
- }
-
- public void testOnRetweeted() throws Exception {
- final Status status = mock.getRetweetMock();
- listener.onStatus(status);
- CustomListAdapter<?> home = getActivity().getListAdapter(MainActivity.AdapterID.Home);
- home.updateForce();
- Thread.sleep(500);
- assertEquals(1, home.getCount());
+ assertEquals(status.getId(), (long) b.object);
+ StatusFilter.getInstance().unregister(this);
}
public void testOnFavorited() throws Exception {
- final Status status = mock.getReplyMock();
- final User source = status.getUser();
- CustomListAdapter<?> history = getActivity().getListAdapter(MainActivity.AdapterID.History);
- listener.onFavorite(source, user, status);
- history.updateForce();
- Thread.sleep(500);
- assertEquals(1, history.getCount());
- listener.onUnfavorite(source, user, status);
- history.updateForce();
- Thread.sleep(500);
- assertEquals(2, history.getCount());
- }
-
- public void testOnFollow() throws Exception {
- final User source = mock.getUserMock();
- CustomListAdapter<?> history = getActivity().getListAdapter(MainActivity.AdapterID.History);
- listener.onFollow(source, user);
- history.updateForce();
- Thread.sleep(500);
- assertEquals(1, history.getCount());
- }
-
- public void testOnBlock() throws Exception {
- final User source = mock.getUserMock();
- CustomListAdapter<?> history = getActivity().getListAdapter(MainActivity.AdapterID.History);
- listener.onBlock(source, user);
- listener.onUnblock(source, user);
- history.updateForce();
- Thread.sleep(500);
- assertEquals(2, history.getCount());
- }
-
- public void testOnDirectMessage() throws Exception {
- final DirectMessage message = mock.getDirectMessageMock();
- CustomListAdapter<?> messages = getActivity().getListAdapter(MainActivity.AdapterID.Messages);
- listener.onDirectMessage(message);
- messages.updateForce();
- Thread.sleep(500);
- assertEquals(1, messages.getCount());
- listener.onDeletionNotice(message.getId(), message.getSenderId());
- messages.updateForce();
- Thread.sleep(500);
- assertEquals(0, messages.getCount());
+ final Status status = mock.getReplyRawMock();
+ final twitter4j.User source = mock.getUserRawMock();
+ Container<EventViewModel> a = new Container<>();
+ StatusFilter.getInstance().register(this, EventViewModel.class,
+ gotVm -> a.object = gotVm,
+ null);
+ listener.onFavorite(source, source, status);
+ assertNotNull(a.object);
+ assertSame(User.fromTwitter(source), a.object.getSource());
+ assertSame(Tweet.fromTwitter(status, mock.getUserMock().getId()), a.object.getTargetObject());
}
@Override
protected void tearDown() throws Exception {
getActivity().forceFinish();
}
+
+ static class Container<T> {
+ public T object;
+ }
}
diff --git a/app/src/androidTest/java/net/lacolaco/smileessence/util/TwitterMock.java b/app/src/androidTest/java/net/lacolaco/smileessence/util/TwitterMock.java
index 04e596e7..c520b35b 100644
--- a/app/src/androidTest/java/net/lacolaco/smileessence/util/TwitterMock.java
+++ b/app/src/androidTest/java/net/lacolaco/smileessence/util/TwitterMock.java
@@ -26,8 +26,11 @@ package net.lacolaco.smileessence.util;
import android.content.Context;
import android.content.res.AssetManager;
-
import net.lacolaco.smileessence.entity.Account;
+import net.lacolaco.smileessence.entity.DirectMessage;
+import net.lacolaco.smileessence.entity.Tweet;
+import net.lacolaco.smileessence.entity.User;
+import twitter4j.*;
import java.io.BufferedReader;
import java.io.IOException;
@@ -35,14 +38,6 @@ import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Properties;
-import net.lacolaco.smileessence.entity.DirectMessage;
-import twitter4j.JSONException;
-import twitter4j.Status;
-import twitter4j.Twitter;
-import twitter4j.TwitterException;
-import twitter4j.TwitterObjectFactory;
-import net.lacolaco.smileessence.entity.User;
-
public class TwitterMock {
AssetManager assets;
@@ -88,26 +83,46 @@ public class TwitterMock {
}
}
- public Status getStatusMock() throws IOException, TwitterException {
+ public Status getTweetRawMock() throws IOException, TwitterException {
return TwitterObjectFactory.createStatus(getJson("status.json"));
}
- public Status getReplyMock() throws IOException, TwitterException {
+ public Tweet getTweetMock() throws IOException, TwitterException {
+ return Tweet.fromTwitter(getTweetRawMock(), getUserMock().getId());
+ }
+
+ public Status getReplyRawMock() throws IOException, TwitterException {
return TwitterObjectFactory.createStatus(getJson("reply.json"));
}
- public Status getRetweetMock() throws IOException, TwitterException {
+ public Tweet getReplyMock() throws IOException, TwitterException {
+ return Tweet.fromTwitter(getReplyRawMock(), getUserMock().getId());
+ }
+
+ public Status getRetweetRawMock() throws IOException, TwitterException {
return TwitterObjectFactory.createStatus(getJson("retweet.json"));
}
- public User getUserMock() throws IOException, TwitterException {
+ public Tweet getRetweetMock() throws IOException, TwitterException {
+ return Tweet.fromTwitter(getRetweetRawMock(), getUserMock().getId());
+ }
+
+ public twitter4j.User getUserRawMock() throws IOException, TwitterException {
return TwitterObjectFactory.createUser(getJson("user.json"));
}
- public DirectMessage getDirectMessageMock() throws IOException, TwitterException {
+ public User getUserMock() throws IOException, TwitterException {
+ return User.fromTwitter(getUserRawMock());
+ }
+
+ public twitter4j.DirectMessage getDirectMessageRawMock() throws IOException, TwitterException {
return TwitterObjectFactory.createDirectMessage(getJson("directmessage.json"));
}
+ public DirectMessage getDirectMessageMock() throws IOException, TwitterException {
+ return DirectMessage.fromTwitter(getDirectMessageRawMock());
+ }
+
public String getAccessToken() throws IOException, JSONException {
return getOAuthToken("accessToken");
}
@@ -116,11 +131,7 @@ public class TwitterMock {
return getOAuthToken("accessTokenSecret");
}
- public Twitter getTwitterMock() throws IOException, JSONException {
- return getAccount().getTwitter();
- }
-
public Account getAccount() throws IOException, TwitterException, JSONException {
- return new Account(getAccessToken(), getAccessTokenSecret(), getUserMock().getId(), getUserMock().getScreenName());
+ return Account.register(getAccessToken(), getAccessTokenSecret(), getUserMock().getId(), getUserMock().getScreenName());
}
}
diff --git a/app/src/androidTest/java/net/lacolaco/smileessence/view/adapter/CustomListAdapterTest.java b/app/src/androidTest/java/net/lacolaco/smileessence/view/adapter/CustomListAdapterTest.java
index fa176a88..0b7f95cc 100644
--- a/app/src/androidTest/java/net/lacolaco/smileessence/view/adapter/CustomListAdapterTest.java
+++ b/app/src/androidTest/java/net/lacolaco/smileessence/view/adapter/CustomListAdapterTest.java
@@ -49,28 +49,28 @@ public class CustomListAdapterTest extends ActivityInstrumentationTestCase2<Main
}
public void testAddItem() throws Exception {
- adapter.addToBottom(new StatusViewModel(mock.getReplyMock(), account));
+ adapter.addToBottom(new StatusViewModel(mock.getReplyMock()));
adapter.notifyDataSetChanged();
assertEquals(1, adapter.getCount());
}
public void testUpdate() throws Exception {
- adapter.addToBottom(new StatusViewModel(mock.getReplyMock(), account));
+ adapter.addToBottom(new StatusViewModel(mock.getReplyMock()));
assertEquals(0, adapter.getCount());
adapter.notifyDataSetChanged();
assertEquals(1, adapter.getCount());
}
public void testAddItems() throws Exception {
- StatusViewModel viewModel1 = new StatusViewModel(mock.getReplyMock(), account);
- StatusViewModel viewModel2 = new StatusViewModel(mock.getReplyMock(), account);
+ StatusViewModel viewModel1 = new StatusViewModel(mock.getReplyMock());
+ StatusViewModel viewModel2 = new StatusViewModel(mock.getReplyMock());
adapter.addToBottom(viewModel1, viewModel2);
adapter.notifyDataSetChanged();
assertEquals(2, adapter.getCount());
}
public void testRemoveItem() throws Exception {
- StatusViewModel viewModel = new StatusViewModel(mock.getReplyMock(), account);
+ StatusViewModel viewModel = new StatusViewModel(mock.getReplyMock());
adapter.addToBottom(viewModel, viewModel);
adapter.notifyDataSetChanged();
assertEquals(1, adapter.getCount());
@@ -80,8 +80,8 @@ public class CustomListAdapterTest extends ActivityInstrumentationTestCase2<Main
}
public void testAddPosition() throws Exception {
- StatusViewModel status1 = new StatusViewModel(mock.getReplyMock(), account);
- StatusViewModel status2 = new StatusViewModel(mock.getReplyMock(), account);
+ StatusViewModel status1 = new StatusViewModel(mock.getReplyMock());
+ StatusViewModel status2 = new StatusViewModel(mock.getReplyMock());
adapter.addToBottom(status1);
adapter.addToTop(status2);
adapter.notifyDataSetChanged();
diff --git a/app/src/androidTest/java/net/lacolaco/smileessence/viewmodel/EventViewModelTest.java b/app/src/androidTest/java/net/lacolaco/smileessence/viewmodel/EventViewModelTest.java
index 0c87ab27..767b5961 100644
--- a/app/src/androidTest/java/net/lacolaco/smileessence/viewmodel/EventViewModelTest.java
+++ b/app/src/androidTest/java/net/lacolaco/smileessence/viewmodel/EventViewModelTest.java
@@ -27,12 +27,10 @@ package net.lacolaco.smileessence.viewmodel;
import android.content.Context;
import android.content.res.Configuration;
import android.test.InstrumentationTestCase;
-
import net.lacolaco.smileessence.R;
-import net.lacolaco.smileessence.util.TwitterMock;
-
-import twitter4j.Status;
+import net.lacolaco.smileessence.entity.Tweet;
import net.lacolaco.smileessence.entity.User;
+import net.lacolaco.smileessence.util.TwitterMock;
import java.util.Locale;
@@ -47,19 +45,19 @@ public class EventViewModelTest extends InstrumentationTestCase {
public void testNewInstance() throws Exception {
Context context = getInstrumentation().getTargetContext();
- Status status = mock.getReplyMock();
+ Tweet status = mock.getReplyMock();
User source = mock.getUserMock();
EventViewModel event = new EventViewModel(EventViewModel.EnumEvent.FAVORITED, source, status);
- assertEquals(source.getId(), event.source.getId());
- assertEquals(status.getId(), event.targetObject.getId());
- assertEquals(context.getString(R.string.format_event_favorited, source.getScreenName()), event.getFormattedString(context));
+ assertEquals(source, event.getSource());
+ assertEquals(status, event.getTargetObject());
+ assertEquals(context.getString(R.string.format_event_favorited, source.getScreenName()), event.getFormattedString());
event = new EventViewModel(EventViewModel.EnumEvent.RECEIVE_MESSAGE, source);
Configuration config = context.getResources().getConfiguration();
config.locale = Locale.ENGLISH;
context.getResources().updateConfiguration(config, context.getResources().getDisplayMetrics());
- assertEquals(String.format("Received %s's message", source.getScreenName()), event.getFormattedString(context));
+ assertEquals(String.format("Received %s's message", source.getScreenName()), event.getFormattedString());
config.locale = Locale.JAPANESE;
context.getResources().updateConfiguration(config, context.getResources().getDisplayMetrics());
- assertEquals(String.format("%sからのDMを受信", source.getScreenName()), event.getFormattedString(context));
+ assertEquals(String.format("%sからのDMを受信", source.getScreenName()), event.getFormattedString());
}
}
diff --git a/app/src/androidTest/java/net/lacolaco/smileessence/viewmodel/MessageViewModelTest.java b/app/src/androidTest/java/net/lacolaco/smileessence/viewmodel/MessageViewModelTest.java
index 484d526b..e9d1acc9 100644
--- a/app/src/androidTest/java/net/lacolaco/smileessence/viewmodel/MessageViewModelTest.java
+++ b/app/src/androidTest/java/net/lacolaco/smileessence/viewmodel/MessageViewModelTest.java
@@ -25,11 +25,8 @@
package net.lacolaco.smileessence.viewmodel;
import android.test.InstrumentationTestCase;
-
-import net.lacolaco.smileessence.entity.Account;
-import net.lacolaco.smileessence.util.TwitterMock;
-
import net.lacolaco.smileessence.entity.DirectMessage;
+import net.lacolaco.smileessence.util.TwitterMock;
public class MessageViewModelTest extends InstrumentationTestCase {
@@ -42,12 +39,7 @@ public class MessageViewModelTest extends InstrumentationTestCase {
public void testNewInstance() throws Exception {
DirectMessage dm = mock.getDirectMessageMock();
- MessageViewModel viewModel = new MessageViewModel(dm, new Account(mock.getAccessToken(), mock.getAccessTokenSecret(), mock.getUserMock().getId(), mock.getUserMock().getScreenName()));
- assertEquals(dm.getId(), viewModel.getID());
- assertEquals(dm.getSenderId(), viewModel.getSenderID());
- assertEquals(dm.getSenderScreenName(), viewModel.getSenderScreenName());
- assertEquals(dm.getSender().getProfileImageURL(), viewModel.getSenderIconURL());
- assertEquals(dm.getText(), viewModel.getText());
- assertEquals(dm.getCreatedAt(), viewModel.getCreatedAt());
+ MessageViewModel viewModel = new MessageViewModel(dm);
+ assertEquals(dm, viewModel.getDirectMessage());
}
}
diff --git a/app/src/androidTest/java/net/lacolaco/smileessence/viewmodel/StatusViewModelTest.java b/app/src/androidTest/java/net/lacolaco/smileessence/viewmodel/StatusViewModelTest.java
index 28d6c607..bfb54b60 100644
--- a/app/src/androidTest/java/net/lacolaco/smileessence/viewmodel/StatusViewModelTest.java
+++ b/app/src/androidTest/java/net/lacolaco/smileessence/viewmodel/StatusViewModelTest.java
@@ -25,33 +25,21 @@
package net.lacolaco.smileessence.viewmodel;
import android.test.InstrumentationTestCase;
-
-import net.lacolaco.smileessence.entity.Account;
+import net.lacolaco.smileessence.entity.Tweet;
import net.lacolaco.smileessence.util.TwitterMock;
public class StatusViewModelTest extends InstrumentationTestCase {
TwitterMock mock;
- Account account;
@Override
public void setUp() throws Exception {
mock = new TwitterMock(getInstrumentation().getContext());
- account = new Account(mock.getAccessToken(), mock.getAccessTokenSecret(), mock.getUserMock().getId(), mock.getUserMock().getScreenName());
- }
-
- public void testID() throws Exception {
- StatusViewModel status = new StatusViewModel(mock.getReplyMock(), account);
- assertNotSame(0L, status.getID());
- }
-
- public void testMention() throws Exception {
- StatusViewModel status = new StatusViewModel(mock.getReplyMock(), account);
- assertTrue(status.isMention(account.screenName));
}
- public void testMyStatus() throws Exception {
- StatusViewModel status = new StatusViewModel(mock.getStatusMock(), account);
- assertTrue(status.isMyStatus(account.userID));
+ public void testTweetObject() throws Exception {
+ Tweet tw = mock.getReplyMock();
+ StatusViewModel status = new StatusViewModel(tw);
+ assertSame(tw, status.getTweet());
}
}
diff --git a/app/src/androidTest/java/net/lacolaco/smileessence/viewmodel/UserViewModelTest.java b/app/src/androidTest/java/net/lacolaco/smileessence/viewmodel/UserViewModelTest.java
deleted file mode 100644
index 5b295286..00000000
--- a/app/src/androidTest/java/net/lacolaco/smileessence/viewmodel/UserViewModelTest.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * The MIT License (MIT)
- *
- * Copyright (c) 2012-2014 lacolaco.net
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-package net.lacolaco.smileessence.viewmodel;
-
-import android.test.InstrumentationTestCase;
-
-import net.lacolaco.smileessence.util.TwitterMock;
-
-public class UserViewModelTest extends InstrumentationTestCase {
-
- UserViewModel user;
-
- @Override
- public void setUp() throws Exception {
- user = new UserViewModel(new TwitterMock(getInstrumentation().getContext()).getUserMock());
- }
-
- public void testID() throws Exception {
- assertNotSame(0L, user.getID());
- }
-
- public void testScreenName() throws Exception {
- assertNotNull(user.getScreenName());
- }
-
- public void testName() throws Exception {
- assertNotNull(user.getName());
- }
-
- public void testDescription() throws Exception {
- assertNotNull(user.getDescription());
- }
-
- public void testLocation() throws Exception {
- assertNotNull(user.getLocation());
- }
-
- public void testURL() throws Exception {
- assertNotNull(user.getURL());
- }
-
- public void testIconURL() throws Exception {
- assertNotNull(user.getIconURL());
- }
-
- public void testBannerURL() throws Exception {
- assertNotNull(user.getBannerURL());
- }
-
- public void testStatusCount() throws Exception {
- assertNotSame(0, user.getStatusesCount());
- }
-
- public void testFriendCount() throws Exception {
- assertNotSame(0, user.getFriendsCount());
- }
-
- public void testFollowerCount() throws Exception {
- assertNotSame(0, user.getFollowersCount());
- }
-
- public void testFavoriteCount() throws Exception {
- assertNotSame(0, user.getFavoritesCount());
- }
-
- public void testProtected() throws Exception {
- assertFalse(user.isProtected());
- }
-
- public void testMarked() throws Exception {
- assertFalse(user.isVerified());
- }
-}
-
diff --git a/app/src/main/java/net/lacolaco/smileessence/Application.java b/app/src/main/java/net/lacolaco/smileessence/Application.java
index ab96368d..9c82aa3c 100644
--- a/app/src/main/java/net/lacolaco/smileessence/Application.java
+++ b/app/src/main/java/net/lacolaco/smileessence/Application.java
@@ -30,6 +30,7 @@ import net.lacolaco.smileessence.entity.Account;
import net.lacolaco.smileessence.logging.Logger;
import net.lacolaco.smileessence.preference.UserPreferenceHelper;
import net.lacolaco.smileessence.util.Themes;
+import net.lacolaco.smileessence.util.UIHandler;
import java.util.Collections;
import java.util.Set;
@@ -90,7 +91,7 @@ public class Application extends com.activeandroid.app.Application {
public void setCurrentAccount(Account val) {
currentAccount = val;
for (OnCurrentAccountChangedListener listener : currentAccountChangedListeners) {
- listener.onCurrentAccountChanged(val);
+ new UIHandler().post(() -> listener.onCurrentAccountChanged(val));
}
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandNanigaja.java b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandNanigaja.java
index 6adeeb57..fd0005cf 100644
--- a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandNanigaja.java
+++ b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandNanigaja.java
@@ -69,8 +69,8 @@ public class StatusCommandNanigaja extends StatusCommand implements IConfirmable
str = str.replaceFirst(String.format("@%s", user.getScreenName()), "").trim();
header = "@" + getOriginalStatus().getUser().getScreenName();
}
- str = String.format("%s %s", header, String.format(getFormatString(getActivity()), str)).trim();
- return str;
+ str = header + " " + String.format(getActivity().getString(R.string.format_status_command_nanigaja), str);
+ return str.trim();
}
@Override
@@ -85,8 +85,4 @@ public class StatusCommandNanigaja extends StatusCommand implements IConfirmable
.execute();
return true;
}
-
- private String getFormatString(Activity activity) {
- return activity.getString(R.string.format_status_command_nanigaja);
- }
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/preference/SharedPreferenceHelper.java b/app/src/main/java/net/lacolaco/smileessence/preference/SharedPreferenceHelper.java
index 979dc732..9cea0a6a 100644
--- a/app/src/main/java/net/lacolaco/smileessence/preference/SharedPreferenceHelper.java
+++ b/app/src/main/java/net/lacolaco/smileessence/preference/SharedPreferenceHelper.java
@@ -40,6 +40,11 @@ public abstract class SharedPreferenceHelper {
return getPreferences().getString(getString(key), defaultValue);
}
+ @Deprecated
+ public String get(String key, String defaultValue) {
+ return getPreferences().getString(key, defaultValue);
+ }
+
// int, long, float value may be stored in String format (old versions)
public int get(int key, int defaultValue) {
try {
@@ -85,6 +90,13 @@ public abstract class SharedPreferenceHelper {
.commit();
}
+ @Deprecated
+ public boolean set(String key, String value) {
+ return getPreferences().edit()
+ .putString(key, value)
+ .commit();
+ }
+
public boolean set(int key, int value) {
return getPreferences().edit()
.putInt(getString(key), value)
diff --git a/app/src/main/java/net/lacolaco/smileessence/viewmodel/EventViewModel.java b/app/src/main/java/net/lacolaco/smileessence/viewmodel/EventViewModel.java
index 683dd58d..216eb92b 100644
--- a/app/src/main/java/net/lacolaco/smileessence/viewmodel/EventViewModel.java
+++ b/app/src/main/java/net/lacolaco/smileessence/viewmodel/EventViewModel.java
@@ -90,6 +90,14 @@ public class EventViewModel implements IViewModel {
return targetObject != null;
}
+ public Tweet getTargetObject() {
+ return targetObject;
+ }
+
+ public User getSource() {
+ return source;
+ }
+
// ------------------------ INTERFACE METHODS ------------------------