Skip to content

Commit 5c054ab

Browse files
committed
test: SocketTest
1 parent a4c4521 commit 5c054ab

File tree

5 files changed

+109
-23
lines changed

5 files changed

+109
-23
lines changed

app/build.gradle

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,11 @@ android {
2121
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
2222
}
2323
}
24+
testOptions {
25+
unitTests {
26+
includeAndroidResources = true
27+
}
28+
}
2429
}
2530

2631
dependencies {
@@ -31,11 +36,8 @@ dependencies {
3136
implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
3237
implementation 'com.android.support:appcompat-v7:25.4.0'
3338
testImplementation 'junit:junit:4.12'
39+
testCompile "org.robolectric:robolectric:3.3.2"
3440
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
3541
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
36-
// compile 'io.reactivex.rxjava2:rxjava:2.1.1' {
37-
// exclude group: "io.reactivex", module: "rxjava"
38-
// }
39-
4042
implementation project(':RxSocketClient')
4143
}

app/src/main/java/moe/codeest/rxsocketclientdemo/JavaActivity.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,7 @@ protected void onCreate(Bundle savedInstanceState) {
5858
btnSend.setOnClickListener(this);
5959
btnConnect.setOnClickListener(this);
6060
btnDisConnect.setOnClickListener(this);
61-
}
6261

63-
private void connect() {
6462
//init
6563
mClient = RxSocketClient
6664
.create(new SocketConfig.Builder()
@@ -75,7 +73,9 @@ private void connect() {
7573
.setHead(HEAD)
7674
.setTail(TAIL)
7775
.build());
76+
}
7877

78+
private void connect() {
7979
//connect
8080
ref = mClient.connect()
8181
.observeOn(AndroidSchedulers.mainThread())
@@ -109,6 +109,12 @@ public void accept(Throwable throwable) throws Exception {
109109
});
110110
}
111111

112+
public void connect(SocketSubscriber subscriber) {
113+
ref = mClient.connect()
114+
.observeOn(AndroidSchedulers.mainThread())
115+
.subscribe(subscriber);
116+
}
117+
112118
@Override
113119
public void onClick(View v) {
114120
switch (v.getId()) {

app/src/test/java/moe/codeest/rxsocketclientdemo/ExampleUnitTest.kt

Lines changed: 0 additions & 17 deletions
This file was deleted.
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
package moe.codeest.rxsocketclientdemo;
2+
3+
import android.widget.Button;
4+
import android.widget.TextView;
5+
import android.widget.Toast;
6+
7+
import org.jetbrains.annotations.NotNull;
8+
import org.junit.Before;
9+
import org.junit.Test;
10+
import org.junit.runner.RunWith;
11+
import org.robolectric.Robolectric;
12+
import org.robolectric.RobolectricTestRunner;
13+
import org.robolectric.annotation.Config;
14+
import org.robolectric.shadows.ShadowLog;
15+
import org.robolectric.shadows.ShadowToast;
16+
17+
import java.net.URISyntaxException;
18+
import java.util.Arrays;
19+
20+
import moe.codeest.rxsocketclient.SocketSubscriber;
21+
22+
import static junit.framework.Assert.assertEquals;
23+
import static junit.framework.Assert.assertNotNull;
24+
25+
/**
26+
* @author: Est <codeest.dev@gmail.com>
27+
* @date: 2017/7/12
28+
* @description:
29+
*/
30+
31+
@RunWith(RobolectricTestRunner.class)
32+
@Config(constants = BuildConfig.class)
33+
public class SocketTest {
34+
35+
private JavaActivity activity;
36+
private Button btnConnect, btnDisConnect, btnSend;
37+
private TextView tvReceive;
38+
39+
@Before
40+
public void setUp() throws URISyntaxException {
41+
ShadowLog.stream = System.out;
42+
activity = Robolectric.setupActivity(JavaActivity.class);
43+
btnConnect = (Button) activity.findViewById(R.id.btn_connect);
44+
btnDisConnect = (Button) activity.findViewById(R.id.btn_disconnect);
45+
btnSend = (Button) activity.findViewById(R.id.btn_send);
46+
tvReceive = (TextView) activity.findViewById(R.id.tv_receive);
47+
}
48+
49+
@Test
50+
public void testActivity() {
51+
assertNotNull(activity);
52+
assertEquals("RxSocketClientDemo", activity.getTitle());
53+
}
54+
55+
@Test
56+
public void testCallback(){
57+
assertNotNull(activity);
58+
TestSocketSubscriber subscriber = new TestSocketSubscriber();
59+
activity.connect(subscriber);
60+
subscriber.onConnected();
61+
assertEquals("onConnected", ShadowToast.getTextOfLatestToast());
62+
subscriber.onResponse(new byte[]{1, 2, 3});
63+
assertEquals("[1, 2, 3]", tvReceive.getText());
64+
subscriber.onDisconnected();
65+
assertEquals("onDisConnected", ShadowToast.getTextOfLatestToast());
66+
}
67+
68+
@Test
69+
public void testUI(){
70+
assertNotNull(btnConnect);
71+
assertNotNull(btnDisConnect);
72+
btnConnect.performClick();
73+
btnDisConnect.performClick();
74+
}
75+
76+
public class TestSocketSubscriber extends SocketSubscriber {
77+
78+
@Override
79+
public void onConnected() {
80+
Toast.makeText(activity, "onConnected", Toast.LENGTH_SHORT).show();
81+
}
82+
83+
@Override
84+
public void onDisconnected() {
85+
Toast.makeText(activity, "onDisConnected", Toast.LENGTH_SHORT).show();
86+
}
87+
88+
@Override
89+
public void onResponse(@NotNull byte[] data) {
90+
tvReceive.setText(Arrays.toString(data));
91+
}
92+
}
93+
94+
}

gradle.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
# Specifies the JVM arguments used for the daemon process.
1111
# The setting is particularly useful for tweaking memory settings.
1212
org.gradle.jvmargs=-Xmx1536m
13+
android.enableAapt2=false
1314

1415
# When configured, Gradle will run in incubating parallel mode.
1516
# This option should only be used with decoupled projects. More details, visit

0 commit comments

Comments
 (0)