package bf.io.openshop; import android.app.Activity; import android.app.ProgressDialog; import android.content.Context; import com.google.gson.Gson; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import bf.io.openshop.utils.Utils; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; import static org.mockito.Mockito.when; /** * Simple unit tests for {@link Utils} class. */ @RunWith(MockitoJUnitRunner.class) public class UtilsUnitTest { @Mock Context mMockContext; @Mock Activity mMockActivity; @Test public void gsonConstructorNotNull() { Gson gson = Utils.getGsonParser(); assertNotEquals(gson, null); } @Test public void progressDialogConstructorNotNull() { ProgressDialog progressDialog = Utils.generateProgressDialog(mMockContext, false); assertNotEquals(progressDialog, null); } @Test public void parseDateOK() { String startDate = "2016-04-13 13:21:04"; String result = Utils.parseDate(startDate); String expected = "13.04.2016"; assertEquals(result, expected); } @Test public void parseDateFailed() { String startDate = "201604-13 13:21:04"; String result = Utils.parseDate(startDate); assertEquals(result, startDate); startDate = "2016-04-1313:21:04"; result = Utils.parseDate(startDate); assertEquals(result, startDate); } @Test public void testDiscountCalculation() { when(mMockContext.getString(R.string.format_price_discount_percents)).thenReturn("-%1$d %%"); double startBasePrice = 45; double startDiscountPrice = 40; String expected = "-11 %"; String result = Utils.calculateDiscountPercent(mMockContext, startBasePrice, startDiscountPrice); assertEquals(result, expected); startBasePrice = 45.80; startDiscountPrice = 33.16; expected = "-28 %"; result = Utils.calculateDiscountPercent(mMockContext, startBasePrice, startDiscountPrice); assertEquals(result, expected); startBasePrice = 33.16; startDiscountPrice = 45.8; expected = "-0 %"; result = Utils.calculateDiscountPercent(mMockContext, startBasePrice, startDiscountPrice); assertEquals(result, expected); } }