Skip to content

Commit 6a2c519

Browse files
Merge branch 'master' into patch-1
2 parents 1b64dcb + 70d50b9 commit 6a2c519

File tree

6 files changed

+34
-216
lines changed

6 files changed

+34
-216
lines changed

.github/workflows/android.yml

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ jobs:
7878
action: build
7979
test:
8080
if: ${{ startsWith(github.ref, 'refs/tags/') != true && github.event.inputs.SNAPSHOT != 'true' }}
81-
runs-on: macos-latest
81+
runs-on: ubuntu-latest
8282
strategy:
8383
fail-fast: false
8484
matrix:
@@ -89,7 +89,13 @@ jobs:
8989
- name: set up JDK 11
9090
uses: actions/setup-java@v1
9191
with:
92-
java-version: 11
92+
java-version: 11
93+
- name: Enable KVM
94+
run: |
95+
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
96+
sudo udevadm control --reload-rules
97+
sudo udevadm trigger --name-match=kvm
98+
9399
- name: Grant execute permission for gradlew
94100
run: chmod +x gradlew
95101
- name: Gradle cache
@@ -114,6 +120,7 @@ jobs:
114120
uses: reactivecircus/android-emulator-runner@v2
115121
with:
116122
api-level: ${{ matrix.api-level }}
123+
# arch: arm64-v8a # Specify ARM architecture
117124
force-avd-creation: false
118125
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
119126
disable-animations: false

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,4 +151,4 @@ License (Public Domain): [https://github.com/noveogroup/android-logger/blob/mast
151151

152152
- Ruby - https://github.com/optimizely/ruby-sdk
153153

154-
- Swift - https://github.com/optimizely/swift-sdk
154+
- Swift - https://github.com/optimizely/swift-sdk

odp/src/androidTest/java/com/optimizely/ab/android/odp/ODPSegmentClientTest.kt

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
package com.optimizely.ab.android.odp
1616

1717
import androidx.test.ext.junit.runners.AndroidJUnit4
18-
import com.optimizely.ab.android.shared.ClientForODPOnly
18+
import com.optimizely.ab.android.shared.Client
1919
import java.io.OutputStream
2020
import java.net.HttpURLConnection
2121
import org.junit.Assert.assertNull
@@ -34,9 +34,9 @@ import org.slf4j.Logger
3434
@RunWith(AndroidJUnit4::class)
3535
class ODPSegmentClientTest {
3636
private val logger = mock(Logger::class.java)
37-
private val client = mock(ClientForODPOnly::class.java)
37+
private val client = mock(Client::class.java)
3838
private val urlConnection = mock(HttpURLConnection::class.java)
39-
private val captor = ArgumentCaptor.forClass(ClientForODPOnly.Request::class.java)
39+
private val captor = ArgumentCaptor.forClass(Client.Request::class.java)
4040
private lateinit var segmentClient: ODPSegmentClient
4141

4242
private val apiKey = "valid-key"
@@ -96,17 +96,17 @@ class ODPSegmentClientTest {
9696
verify(urlConnection).disconnect()
9797
}
9898

99-
// @Test
100-
// fun fetchQualifiedSegments_connectionFailed() {
101-
// `when`(urlConnection.responseCode).thenReturn(200)
102-
//
103-
// apiEndpoint = "invalid-url"
104-
// segmentClient.fetchQualifiedSegments(apiKey, apiEndpoint, payload)
105-
//
106-
// verify(client).execute(captor.capture(), eq(0), eq(0))
107-
// val received = captor.value.execute()
108-
//
109-
// assertNull(received)
110-
// verify(logger).error(contains("Error making ODP segment request"), any())
111-
// }
99+
@Test
100+
fun fetchQualifiedSegments_connectionFailed() {
101+
`when`(urlConnection.responseCode).thenReturn(200)
102+
103+
apiEndpoint = "invalid-url"
104+
segmentClient.fetchQualifiedSegments(apiKey, apiEndpoint, payload)
105+
106+
verify(client).execute(captor.capture(), eq(0), eq(0))
107+
val received = captor.value.execute()
108+
109+
assertNull(received)
110+
verify(logger).error(contains("Error making ODP segment request"), any())
111+
}
112112
}

odp/src/main/java/com/optimizely/ab/android/odp/DefaultODPApiManager.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ package com.optimizely.ab.android.odp
1616

1717
import android.content.Context
1818
import androidx.annotation.VisibleForTesting
19-
import com.optimizely.ab.android.shared.ClientForODPOnly
19+
import com.optimizely.ab.android.shared.Client
2020
import com.optimizely.ab.android.shared.OptlyStorage
2121
import com.optimizely.ab.android.shared.WorkerScheduler
2222
import com.optimizely.ab.odp.ODPApiManager
@@ -33,7 +33,7 @@ open class DefaultODPApiManager(private val context: Context, timeoutForSegmentF
3333

3434
@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
3535
var segmentClient = ODPSegmentClient(
36-
ClientForODPOnly(OptlyStorage(context), LoggerFactory.getLogger(ClientForODPOnly::class.java)),
36+
Client(OptlyStorage(context), LoggerFactory.getLogger(Client::class.java)),
3737
LoggerFactory.getLogger(ODPSegmentClient::class.java)
3838
)
3939
private val logger = LoggerFactory.getLogger(DefaultODPApiManager::class.java)

odp/src/main/java/com/optimizely/ab/android/odp/ODPSegmentClient.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@
1515
package com.optimizely.ab.android.odp
1616

1717
import androidx.annotation.VisibleForTesting
18-
import com.optimizely.ab.android.shared.ClientForODPOnly
18+
import com.optimizely.ab.android.shared.Client
1919
import com.optimizely.ab.odp.parser.ResponseJsonParser
2020
import com.optimizely.ab.odp.parser.ResponseJsonParserFactory
2121
import org.slf4j.Logger
2222
import java.net.HttpURLConnection
2323
import java.net.URL
2424

2525
@VisibleForTesting(otherwise = VisibleForTesting.PROTECTED)
26-
open class ODPSegmentClient(private val client: ClientForODPOnly, private val logger: Logger) {
26+
open class ODPSegmentClient(private val client: Client, private val logger: Logger) {
2727

2828
@VisibleForTesting(otherwise = VisibleForTesting.PROTECTED)
2929
open fun fetchQualifiedSegments(
@@ -32,7 +32,7 @@ open class ODPSegmentClient(private val client: ClientForODPOnly, private val lo
3232
payload: String
3333
): List<String>? {
3434

35-
val request: ClientForODPOnly.Request<String> = ClientForODPOnly.Request {
35+
val request: Client.Request<String> = Client.Request {
3636
var urlConnection: HttpURLConnection? = null
3737
try {
3838
val url = URL(apiEndpoint)
@@ -60,13 +60,13 @@ open class ODPSegmentClient(private val client: ClientForODPOnly, private val lo
6060
logger.debug("Successfully fetched ODP segments: {}", json)
6161
return@Request json
6262
} else {
63-
logger.error("Unexpected response from ODP segment endpoint, status: $status")
63+
var errMsg = "Unexpected response from ODP segment endpoint, status: $status"
64+
logger.error(errMsg)
6465
return@Request null
6566
}
6667
} catch (e: Exception) {
6768
logger.error("Error making ODP segment request", e)
68-
// return@Request null
69-
throw e
69+
return@Request null
7070
} finally {
7171
if (urlConnection != null) {
7272
try {

shared/src/main/java/com/optimizely/ab/android/shared/ClientForODPOnly.java

Lines changed: 0 additions & 189 deletions
This file was deleted.

0 commit comments

Comments
 (0)