From 9528ec4609a58c6303f61020166df6f115cb61d8 Mon Sep 17 00:00:00 2001 From: li Ethan Date: Sun, 13 Jun 2021 18:38:34 +0100 Subject: [PATCH] add new method and unit test --- .../CalculatorViewModel.kt | 9 ++++--- .../codecoveragetestapp/MainActivity.kt | 8 +++++++ .../CalculatorViewModelTest.kt | 24 ++++++++++++++----- 3 files changed, 30 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/xianwei/codecoveragetestapp/CalculatorViewModel.kt b/app/src/main/java/com/xianwei/codecoveragetestapp/CalculatorViewModel.kt index cc03577..16293ec 100644 --- a/app/src/main/java/com/xianwei/codecoveragetestapp/CalculatorViewModel.kt +++ b/app/src/main/java/com/xianwei/codecoveragetestapp/CalculatorViewModel.kt @@ -15,13 +15,12 @@ class CalculatorViewModel : ViewModel() { state.value = inputA - inputB } - fun onInputAUpdate(toString: String) { - + fun onMultiplyClicked(inputA: Int, inputB: Int) { + state.value = inputA * inputB } - fun onInputBUpdate(toString: String) { - - + fun onDividerClicked(inputA: Int, inputB: Int) { + state.value = inputA / inputB } } \ No newline at end of file diff --git a/app/src/main/java/com/xianwei/codecoveragetestapp/MainActivity.kt b/app/src/main/java/com/xianwei/codecoveragetestapp/MainActivity.kt index 7851aaf..bc18dbf 100644 --- a/app/src/main/java/com/xianwei/codecoveragetestapp/MainActivity.kt +++ b/app/src/main/java/com/xianwei/codecoveragetestapp/MainActivity.kt @@ -42,9 +42,17 @@ class MainActivity : AppCompatActivity() { } binding.multiply.setOnClickListener { + if (validInput()) { + viewModel.onMultiplyClicked(inputA, inputB) + binding.sign.text = "*" + } } binding.divider.setOnClickListener { + if (validInput()) { + viewModel.onDividerClicked(inputA, inputB) + binding.sign.text = "/" + } } } diff --git a/app/src/test/java/com/xianwei/codecoveragetestapp/CalculatorViewModelTest.kt b/app/src/test/java/com/xianwei/codecoveragetestapp/CalculatorViewModelTest.kt index 07bc6e5..8392918 100644 --- a/app/src/test/java/com/xianwei/codecoveragetestapp/CalculatorViewModelTest.kt +++ b/app/src/test/java/com/xianwei/codecoveragetestapp/CalculatorViewModelTest.kt @@ -1,18 +1,12 @@ package com.xianwei.codecoveragetestapp import androidx.arch.core.executor.testing.InstantTaskExecutorRule -import androidx.test.ext.junit.runners.AndroidJUnit4 -import org.junit.Assert import org.junit.Assert.assertEquals - import org.junit.Before import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith import org.junit.runners.JUnit4 -import org.mockito.Mock -import org.mockito.Mockito -import org.mockito.MockitoAnnotations @RunWith(JUnit4::class) class CalculatorViewModelTest { @@ -32,4 +26,22 @@ class CalculatorViewModelTest { testViewModel.onPlusClicked(9, 2) assertEquals(11, testViewModel.state.value) } + + @Test + fun test_on_minus_click_method() { + testViewModel.onMinusClicked(9, 2) + assertEquals(7, testViewModel.state.value) + } + + @Test + fun test_on_multiply_click_method() { + testViewModel.onMultiplyClicked(9, 2) + assertEquals(18, testViewModel.state.value) + } + + @Test + fun test_on_divider_click_method() { + testViewModel.onDividerClicked(9, 3) + assertEquals(3, testViewModel.state.value) + } } \ No newline at end of file