diff --git a/Lesson1/Task1/Converter/app/src/androidTest/java/ru/geekbrains/converter/ConvertActivityTest.java b/Lesson1/Task1/Converter/app/src/androidTest/java/ru/geekbrains/converter/ConvertActivityTest.java index 1e2f42b..620146c 100644 --- a/Lesson1/Task1/Converter/app/src/androidTest/java/ru/geekbrains/converter/ConvertActivityTest.java +++ b/Lesson1/Task1/Converter/app/src/androidTest/java/ru/geekbrains/converter/ConvertActivityTest.java @@ -30,28 +30,40 @@ public class ConvertActivityTest { public ActivityTestRule mActivityRule = new ActivityTestRule<>( ConvertActivity.class); - @Before - public void initValidString() { - // Specify a valid string. - mStringToBetyped = "5"; - } - @Test public void ConvertActivity_toFahrenheitButton_Test() { + mStringToBetyped = "5"; // Type text and then press the button. - onView(withId(R.id.celsiusValue)) + onView(withId(R.id.value)) .perform(typeText(mStringToBetyped), closeSoftKeyboard()); onView(withId(R.id.toFahrenheitButton)).perform(click()); // Check that the text was changed. - onView(withId(R.id.celsiusValue)) + onView(withId(R.id.value)) .check(matches(withText(mStringToBetyped))); - onView(withId(R.id.fahrenheitValue)) + onView(withId(R.id.result)) .check(matches(withText("41.00"))); // формат вывода два знака после запятой } + @Test + public void ConvertActivity_toMetersPerSecondButton_Test() { + mStringToBetyped = "36"; + // Type text and then press the button. + onView(withId(R.id.value)) + .perform(typeText(mStringToBetyped), closeSoftKeyboard()); + onView(withId(R.id.toMetersPerSecondButton)).perform(click()); + + // Check that the text was changed. + onView(withId(R.id.value)) + .check(matches(withText(mStringToBetyped))); + + onView(withId(R.id.result)) + .check(matches(withText("10.00"))); // формат вывода два знака после запятой + + } + @Test public void AppContext_Test() throws Exception { // Context of the app under test. diff --git a/Lesson1/Task1/Converter/app/src/main/java/ru/geekbrains/converter/ConvertActivity.java b/Lesson1/Task1/Converter/app/src/main/java/ru/geekbrains/converter/ConvertActivity.java index 3b4068d..10f6cb4 100644 --- a/Lesson1/Task1/Converter/app/src/main/java/ru/geekbrains/converter/ConvertActivity.java +++ b/Lesson1/Task1/Converter/app/src/main/java/ru/geekbrains/converter/ConvertActivity.java @@ -14,19 +14,28 @@ public class ConvertActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_convert); - sourceText = (EditText) findViewById(R.id.celsiusValue); - destText = (EditText) findViewById(R.id.fahrenheitValue); + sourceText = (EditText) findViewById(R.id.value); + destText = (EditText) findViewById(R.id.result); } // обработка нажатия - public void onToFahrenheitClick(View view) { + public void onButtonClick(View view) { // получить входное значение float sourceValue = Float.parseFloat(sourceText.getText().toString()); // инстанцировать конвертер Converter converter = new Converter(sourceValue); - // преобразовать, обратите внимание на параметр ConvertToFahrenheit - float destValue = converter.Convert(new ConvertToFahrenheit()).GetResult(); - // записать результат в элемент - destText.setText(String.format("%.02f", destValue)); + Float destValue = null; + switch (view.getId()) { + case R.id.toFahrenheitButton: + // преобразовать, обратите внимание на параметр ConvertToFahrenheit + destValue = converter.Convert(new ConvertToFahrenheit()).GetResult(); + break; + case R.id.toMetersPerSecondButton: + destValue = converter.Convert(new ConvertToMetersPerSecond()).GetResult(); + break; + } + if (destValue != null) { + destText.setText(String.format("%.02f", destValue)); + } } } diff --git a/Lesson1/Task1/Converter/app/src/main/java/ru/geekbrains/converter/ConvertToMetersPerSecond.java b/Lesson1/Task1/Converter/app/src/main/java/ru/geekbrains/converter/ConvertToMetersPerSecond.java new file mode 100644 index 0000000..7bb51a8 --- /dev/null +++ b/Lesson1/Task1/Converter/app/src/main/java/ru/geekbrains/converter/ConvertToMetersPerSecond.java @@ -0,0 +1,8 @@ +package ru.geekbrains.converter; + +class ConvertToMetersPerSecond implements ConvertTo { + + @Override public float Do(float sourceValue) { + return sourceValue * 1000 / 3600; + } +} diff --git a/Lesson1/Task1/Converter/app/src/main/res/layout/content_convert.xml b/Lesson1/Task1/Converter/app/src/main/res/layout/content_convert.xml index 6bc8e85..b7028f7 100644 --- a/Lesson1/Task1/Converter/app/src/main/res/layout/content_convert.xml +++ b/Lesson1/Task1/Converter/app/src/main/res/layout/content_convert.xml @@ -9,7 +9,7 @@ tools:showIn="@layout/activity_convert"> + app:layout_constraintTop_toBottomOf="@+id/valueLabel" />