desislava_topuzakova

2. Extended Database

Mar 22nd, 2022
1,307
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.10 KB | None | 0 0
  1. package p02_ExtendedDatabase;
  2.  
  3. import org.junit.Assert;
  4. import org.junit.Before;
  5. import org.junit.Test;
  6.  
  7. import javax.naming.OperationNotSupportedException;
  8.  
  9. public class DatabaseTest {
  10.     private Database database;
  11.     private static final Person[] PEOPLE = {new Person(1, "Boris"), new Person(2, "Petar"), new Person(3, "Miroslav")};
  12.  
  13.     @Before
  14.     public void prepareDatabase() throws OperationNotSupportedException {
  15.         database = new Database(PEOPLE);
  16.     }
  17.  
  18.     //1. конструктор
  19.     //1.1. дали създава правилен обект
  20.     @Test
  21.     public void testConstructorHasCreateValidObject () {
  22.         //проверка на елементите -> елементите = зададените
  23.         Person[] elements = database.getElements();
  24.         //СРАВНЯВАМЕ МАСИВИТЕ
  25.         Assert.assertArrayEquals("Arrays are not the same!", elements, PEOPLE);
  26.     }
  27.     //1.2. елементите > 16
  28.     @Test(expected = OperationNotSupportedException.class)
  29.     public void testConstructorThrowWhenMoreThanSixteenElements () throws OperationNotSupportedException {
  30.         Person[] people = new Person[17]; //масив със 17 елемента
  31.         new Database(people);
  32.     }
  33.     //1.3. елементите < 1
  34.     @Test(expected = OperationNotSupportedException.class)
  35.     public void testConstructorThrowWhenLessThanOneElement () throws OperationNotSupportedException {
  36.         Person[] people = new Person[0];
  37.         new Database(people);
  38.     }
  39.  
  40.     //2. add
  41.     //2.1. успешно добавяме елемент
  42.     @Test
  43.     public void testAddShouldAddElement() throws OperationNotSupportedException {
  44.         //[1."Boris", 2. "Petar", 3. "Miroslav"]
  45.         Person person = new Person(4, "Desi");
  46.         database.add(person);
  47.         //[1."Boris", 2. "Petar", 3. "Miroslav", 4. "Desi"]
  48.         Person[] people = database.getElements();
  49.         Assert.assertEquals("Invalid add operation!", people.length, PEOPLE.length + 1);
  50.         Assert.assertEquals(Integer.valueOf(people[people.length - 1].getId()), Integer.valueOf(4));
  51.         Assert.assertEquals(people[people.length - 1].getUsername(), "Desi");
  52.     }
  53.     //2.2. добавяне на null
  54.     @Test (expected = OperationNotSupportedException.class)
  55.     public void testAddShouldThrowNullParam() throws OperationNotSupportedException {
  56.         database.add(null);
  57.     }
  58.  
  59.     //3. remove
  60.     //3.1. успешно премахване
  61.     @Test
  62.     public void testRemoveLastElement () throws OperationNotSupportedException {
  63.         //[1."Boris", 2. "Petar", 3. "Miroslav"]
  64.         database.remove();
  65.         //[1."Boris", 2. "Petar"]
  66.         Person[] people = database.getElements();
  67.         Assert.assertEquals(people.length, PEOPLE.length - 1);
  68.         Assert.assertEquals(Integer.valueOf(people[people.length - 1].getId()), Integer.valueOf(2));
  69.         Assert.assertEquals(people[people.length - 1].getUsername(), "Petar");
  70.     }
  71.  
  72.     //3.2. премахване от празна database
  73.     @Test(expected = OperationNotSupportedException.class)
  74.     public void testRemoveThrowEmptyDatabase () throws OperationNotSupportedException {
  75.         database = new Database();
  76.         //database => elements = []
  77.         //празна база данни
  78.         database.remove();
  79.     }
  80.  
  81.     //4. findByUsername
  82.     //4.1. подаваме null
  83.     @Test (expected = OperationNotSupportedException.class)
  84.     public void testFindByUsernameThrowNullParam () throws OperationNotSupportedException {
  85.         database.findByUsername(null);
  86.     }
  87.  
  88.     //4.2. ако подам валиден username
  89.     @Test
  90.     public void testFindByUsername () throws OperationNotSupportedException {
  91.         //[1."Boris", 2. "Petar", 3. "Miroslav"]
  92.         Person person = database.findByUsername("Petar");
  93.         //username = "Peter", id = 2
  94.         Assert.assertEquals(2, person.getId());
  95.         Assert.assertEquals("Petar", person.getUsername());
  96.     }
  97.  
  98.     //4.3. ако нямаме хора в database
  99.     @Test (expected = OperationNotSupportedException.class)
  100.     public void testFindByUsernameThrowEmptyDatabase() throws OperationNotSupportedException {
  101.         database = new Database();
  102.         //database => elements = []
  103.         database.findByUsername("Petar");
  104.     }
  105.  
  106.     //4.4. ако намерим повече от 2 човека с това име
  107.     @Test (expected = OperationNotSupportedException.class)
  108.     public void testFindByUsernameMoreThanOnePerson () throws OperationNotSupportedException {
  109.         //[1."Boris", 2. "Petar", 3. "Miroslav"]
  110.         database.add(new Person(4, "Miroslav"));
  111.         //[1."Boris", 2. "Petar", 3. "Miroslav", 4. "Miroslav"]
  112.         database.findByUsername("Miroslav");
  113.     }
  114.     //4.5. ако нямаме човек с това име
  115.     @Test (expected = OperationNotSupportedException.class)
  116.     public void testFindByUsernameInvalidName () throws OperationNotSupportedException {
  117.         //[1."Boris", 2. "Petar", 3. "Miroslav"]
  118.         database.findByUsername("Pesho");
  119.     }
  120.  
  121.     //5. findById
  122.     //5.1. ако подадем валидно id
  123.     @Test
  124.     public void testFindById() throws OperationNotSupportedException {
  125.         //[1."Boris", 2. "Petar", 3. "Miroslav"]
  126.         Person person = database.findById(1); //1."Boris"
  127.         Assert.assertEquals(1, person.getId());
  128.         Assert.assertEquals(person.getUsername(), "Boris");
  129.     }
  130.  
  131.     //5.2. ако намерим повече от 1 човек с това id
  132.     @Test (expected = OperationNotSupportedException.class)
  133.     public void testFindByIdMoreThanOneId () throws OperationNotSupportedException {
  134.         //[1."Boris", 2. "Petar", 3. "Miroslav"]
  135.         database.add(new Person(2, "Pesho"));
  136.         //[1."Boris", 2. "Petar", 3. "Miroslav", 2. "Pesho"]
  137.         database.findById(2);
  138.     }
  139.     //5.3. празен database
  140.     @Test (expected = OperationNotSupportedException.class)
  141.     public void testFindByIdEmptyData () throws OperationNotSupportedException {
  142.         database = new Database();
  143.         database.findById(2);
  144.     }
  145.  
  146. }
  147.  
Advertisement
Add Comment
Please, Sign In to add comment