Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added mydata.db
Binary file not shown.
78 changes: 77 additions & 1 deletion src/main/java/qa/Main.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,83 @@
package qa;

import qa.energy.Energy;
import qa.robots.ChefRobot;
import qa.robots.FightingRobot;
import qa.robots.WelderRobot;

public class Main {
public static void main(String[] args) {
System.out.println("Hello world!");

//боевые роботы показывают все виды действий и заправку различными видами энергии
FightingRobot fightingRobot_1 = new FightingRobot();
fightingRobot_1.shoot();
fightingRobot_1.fight();
fightingRobot_1.drive();
fightingRobot_1.fly();
fightingRobot_1.walk();
fightingRobot_1.refuel(Energy.ATOMIC, 45);

FightingRobot fightingRobot_2 = new FightingRobot();
fightingRobot_2.shoot();
fightingRobot_2.fight();
fightingRobot_2.drive();
fightingRobot_2.fly();
fightingRobot_2.walk();
fightingRobot_2.refuel(Energy.ELECTRIC, 30);

FightingRobot fightingRobot_3 = new FightingRobot();
fightingRobot_3.shoot();
fightingRobot_3.fight();
fightingRobot_3.drive();
fightingRobot_3.fly();
fightingRobot_3.walk();
fightingRobot_3.refuel(Energy.INTERNAL_COMBUSTION, 10);


//роботы - повара показывают все виды действий и заправку различными видами энергии
ChefRobot chefRobot_1 = new ChefRobot();
chefRobot_1.cook();
chefRobot_1.drive();
chefRobot_1.fly();
chefRobot_1.walk();
chefRobot_1.refuel(Energy.INTERNAL_COMBUSTION, 5);

ChefRobot chefRobot_2 = new ChefRobot();
chefRobot_2.cook();
chefRobot_2.drive();
chefRobot_2.fly();
chefRobot_2.walk();
chefRobot_2.refuel(Energy.ELECTRIC, 20);

ChefRobot chefRobot_3 = new ChefRobot();
chefRobot_3.cook();
chefRobot_3.drive();
chefRobot_3.fly();
chefRobot_3.walk();
chefRobot_3.refuel(Energy.ATOMIC, 50);

//роботы - сварщики показывают все виды действий и заправку различными видами энергии
WelderRobot welderRobot_1 = new WelderRobot();
welderRobot_1.weld();
welderRobot_1.walk();
welderRobot_1.drive();
welderRobot_1.fly();
welderRobot_1.refuel(Energy.ATOMIC, 55);

WelderRobot welderRobot_2 = new WelderRobot();
welderRobot_2.weld();
welderRobot_2.walk();
welderRobot_2.drive();
welderRobot_2.fly();
welderRobot_2.refuel(Energy.ELECTRIC, 60);

WelderRobot welderRobot_3 = new WelderRobot();
welderRobot_3.weld();
welderRobot_3.walk();
welderRobot_3.drive();
welderRobot_3.fly();
welderRobot_3.refuel(Energy.INTERNAL_COMBUSTION, 100);


}
}
7 changes: 7 additions & 0 deletions src/main/java/qa/energy/Energy.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package qa.energy;

public enum Energy {
ATOMIC,
ELECTRIC,
INTERNAL_COMBUSTION
}
17 changes: 17 additions & 0 deletions src/main/java/qa/robots/ChefRobot.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package qa.robots;

/**
* ChefRobot - класс робота - повара.
* Наследуется от класса Robot
* ООП принцип - Наследование
*/
public class ChefRobot extends Robot {


/**
* метод, позволяющий роботу - повару готовить
*/
public void cook(){
System.out.println("ChefRobot cooking");
}
}
20 changes: 20 additions & 0 deletions src/main/java/qa/robots/FightingRobot.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package qa.robots;

/**
* FightingRobot - класс боевого робота.
* Наследуется от класса Robot
* ООП принцип - Наследование
*/
public class FightingRobot extends Robot {

/**
* Метод, позволяющий роботу стрелять
*/
public void shoot(){
System.out.println("FightingRobot shoots a gun");
}

public void fight(){
System.out.println("FightingRobot fighting with a sword");
}
}
110 changes: 110 additions & 0 deletions src/main/java/qa/robots/Robot.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
package qa.robots;

import qa.energy.Energy;

/**
* Robot - абстрактный класс, объединяющий всех роботов
* Здесь использован принцип ООП - абстракция
* (способ объединить набор общих характеристик объектов,
* исключая из рассмотрения частные и незначительные)
*/
public abstract class Robot {

/**
* метод зарядки роботов в зависимости от вида энергии
*
* @param energy - вид энергии
* @param index - показатель для заправки
*/

public void refuel(Energy energy, int index) {
switch (energy) {
case ATOMIC -> atomicRefuel(index);
case ELECTRIC -> electricRefuel(index);
case INTERNAL_COMBUSTION -> refueling(index);
}
}


/**
* метод заправки электрической энергией
* ориентируется на степень заряженности батареи
*
* @param charge - процент заряженности батареи
*/

void electricRefuel(int charge) {
if (charge <= 20) {
System.out.println("Робот заряжается автоматически");
try {
Thread.sleep(8000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}

} else {
System.out.println("Робот заряжается принудительно");
try {
Thread.sleep((100 - charge) * 100L);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
System.out.println("Робот полностью заряжен");
}


/**
* заправка атомной энергией
* заправляет робота раз в 50 лет
*
* @param lastRefuelingYear - сколько лет назад была последняя заправка
*/

private void atomicRefuel(int lastRefuelingYear) {
if (lastRefuelingYear >= 50) {
System.out.println("Робот заправлен");
} else
System.out.println("Робот в заправке не нуждается, последняя заправка была "
+ lastRefuelingYear
+ " лет назад");
}

/**
* заправка топливом
* заправляет по мере опустошения бака
*
* @param tankFullness - наполненность бака
*/
private void refueling(int tankFullness) {
if (tankFullness < 10) {
System.out.println("Робот заправлен топливом");
}
}


/**
* робот умеет ходить
*/
public void walk() {
System.out.println("Robot walking");
}



/**
* робот умеет ездить
*/
public void drive() {
System.out.println("Robot driving");
}

/**
* робот умеет летать
*/
public void fly() {
System.out.println("Robot flies");
}


}
19 changes: 19 additions & 0 deletions src/main/java/qa/robots/WelderRobot.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package qa.robots;

/**
* WelderRobot - класс робота - сварщика.
* Наследуется от класса Robot
* ООП принцип - Наследование
*/
public class WelderRobot extends Robot {


/**
* метод для сваривания деталей
*/
public void weld() {

System.out.println("WelderRobot welding parts");

}
}
19 changes: 17 additions & 2 deletions src/test/java/ReadFileTests.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,24 @@
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

public class ReadFileTests {

@Test
public void secondLineShouldHabAlloha(){
//write here second task
public void secondLineShouldHabAlloha() {
//write here second task

String str;
try {
str = Files.readAllLines(Paths.get("src/test/resources/ReadFileTests.txt")).get(1);
} catch (IOException e) {
throw new RuntimeException(e);
}

Assertions.assertTrue(str.contains("аллоха"));

}
}
42 changes: 25 additions & 17 deletions src/test/java/WithProblemsTests.java
Original file line number Diff line number Diff line change
@@ -1,54 +1,62 @@
import java.util.List;

import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;

public class WithProblemsTests {

private final String CONST = "const";
private final static String bd = "pui";

@Test
public void equalsOneToOne(){
public void equalsOneToOne() {
assertEquals("1", "1");

}


@Test
public void assignValueToConstVar(){
CONST = "newValue";
public void assignValueToConstVar() {
String CONST = "newValue";
assertEquals("newValue", CONST);

}

@Test
public static void equalsOneToOne(){
@BeforeAll
public static void equalsStaticOneToOne() {

assertEquals(1, 1);
}

}


@Test
public void stringsMustBeEquals(){
public void stringsMustBeEquals() {
String res = "a";

if (bd == new String("pui")) {
if (bd.equals(new String("pui"))) {
res = "asd";
}

assertEquals("asd", res);

}

@Test
public void successfullyRemovingFirstElementFromList(){
List<String> sourceData = List.of("1", "viskas", "chupocabra");
for (String element: sourceData){
sourceData.remove(element);
public void successfullyRemovingFirstElementFromList() {
List<String> sourceData = new ArrayList<>(List.of("1", "viskas", "chupocabra"));
Iterator<String> dataIterator = sourceData.iterator();
while (dataIterator.hasNext()) {
System.out.println(dataIterator.next());
dataIterator.remove();
}

assertFalse(sourceData.contains("1"));
}

}

}
4 changes: 4 additions & 0 deletions src/test/resources/Task3.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
SELECT
100 * COUNT(promocode_id) / COUNT(order_id) AS percent_of_orders
FROM
orders;
8 changes: 8 additions & 0 deletions src/test/resources/Task4.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
xpath:
"//button[@type='submit']"
"//button[@aria-label='Найти']"

CSS:
по классу: ".search3__button.mini-suggest__button"
по атрибуту "[tabindex]"
по имени атрибута: "[type='submit']", "[tabindex = '-1']", [aria-label = 'Найти']