Skip to content

Commit

Permalink
Fixed tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Pelkar authored and yurii-glia committed Feb 8, 2024
1 parent d244719 commit c8c5e8f
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,6 @@ public String getCompanyName() {
String remoteCompanyName = fetchRemoteCompanyName();
boolean isCompanyNameSetFromGliaHub = remoteCompanyName != null && !remoteCompanyName.trim().isEmpty();

Logger.d("CONFIGURATION", "companyName =" + companyName);
Logger.d("CONFIGURATION", "legacyCompanyName =" + legacyCompanyName);

if (isCompanyNameSetFromGliaHub) {
// Apply company name from Glia Hub
companyName = remoteCompanyName;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,18 @@
package com.glia.widgets.core.configuration

import com.glia.androidsdk.Glia
import com.glia.widgets.R
import com.glia.widgets.StringProvider
import com.glia.widgets.di.Dependencies
import com.glia.widgets.helper.ResourceProvider
import io.mockk.every
import io.mockk.justRun
import io.mockk.mockk
import io.mockk.mockkClass
import io.mockk.mockkObject
import io.mockk.mockkStatic
import org.junit.Assert.assertEquals
import org.junit.Before
import org.junit.Test
import org.mockito.kotlin.mock
import org.mockito.kotlin.whenever
Expand All @@ -11,43 +21,52 @@ private const val DEFAULT_LOCAL_COMPANY_NAME = "Local Company Name"

class GliaSdkConfigurationManagerTest {

private val configurationManager: GliaSdkConfigurationManager = mock()
private val resourceProvider: ResourceProvider = mock()
private val configurationManager: GliaSdkConfigurationManager = GliaSdkConfigurationManager()
private val resourceProvider: ResourceProvider = mockk()
private val stringProvider: StringProvider = mockk()

@Before
fun setup() {
mockkStatic(Glia::class)
mockkStatic(Dependencies::class)
every { Dependencies.getResourceProvider() } returns resourceProvider
every { Dependencies.getStringProvider() } returns stringProvider
every { resourceProvider.getResourceKey(R.string.general_company_name)} returns "key"
every { resourceProvider.getString(any()) } returns DEFAULT_LOCAL_COMPANY_NAME
justRun { stringProvider.reportImproperInitialisation(any())}
}

@Test
fun `getCompanyName returns local default when remote value is null`() {
whenever(configurationManager.fetchRemoteCompanyName()).thenReturn(null)
whenever(configurationManager.resourceProvider).thenReturn(resourceProvider)
whenever(resourceProvider.getString(R.string.general_company_name)).thenReturn(DEFAULT_LOCAL_COMPANY_NAME)
whenever(configurationManager.companyName).thenCallRealMethod()
every { Glia.getRemoteString(any()) } returns null
assertEquals(DEFAULT_LOCAL_COMPANY_NAME, configurationManager.companyName)
}

@Test
fun `getCompanyName returns legacy value when remote value is empty`() {
configurationManager.setLegacyCompanyName("Legacy name")
every { configurationManager.fetchRemoteCompanyName() } returns null
assertEquals("Legacy name", configurationManager.companyName)
}

@Test
fun `getCompanyName returns local default when remote value is empty`() {
whenever(configurationManager.fetchRemoteCompanyName()).thenReturn("")
whenever(configurationManager.resourceProvider).thenReturn(resourceProvider)
whenever(resourceProvider.getString(R.string.general_company_name)).thenReturn(DEFAULT_LOCAL_COMPANY_NAME)
whenever(configurationManager.companyName).thenCallRealMethod()
every { Glia.getRemoteString(any()) } returns ""
assertEquals(DEFAULT_LOCAL_COMPANY_NAME, configurationManager.companyName)
}

@Test
fun `getCompanyName returns remote value when remote value is not empty`() {
whenever(configurationManager.fetchRemoteCompanyName()).thenReturn("Remote company name")
whenever(configurationManager.resourceProvider).thenReturn(resourceProvider)
whenever(resourceProvider.getString(R.string.general_company_name)).thenReturn(DEFAULT_LOCAL_COMPANY_NAME)
whenever(configurationManager.companyName).thenCallRealMethod()
every { Glia.getRemoteString(any()) } returns "Remote company name"
assertEquals("Remote company name", configurationManager.companyName)
}

@Test
fun `getCompanyName should not be replaced when remote value is empty but local custom value is set using GliaWidgetsConfig setCompanyName`() {
whenever(configurationManager.fetchRemoteCompanyName()).thenReturn("")
whenever(configurationManager.resourceProvider).thenReturn(resourceProvider)
whenever(resourceProvider.getString(R.string.general_company_name)).thenReturn(DEFAULT_LOCAL_COMPANY_NAME)
whenever(configurationManager.isCompanyNameSetFromWidgetsConfig).thenReturn(true)
whenever(configurationManager.companyName).thenCallRealMethod()
assertEquals(null, configurationManager.companyName)
configurationManager.setLegacyCompanyName("Legacy name")
configurationManager.companyName = "Init company name"
every { Glia.getRemoteString(any()) } returns ""
every { resourceProvider.getString(R.string.general_company_name) } returns DEFAULT_LOCAL_COMPANY_NAME
assertEquals("Init company name", configurationManager.companyName)
}
}

0 comments on commit c8c5e8f

Please sign in to comment.