Kovalevskyi-Academy / Zeus

Other
2 stars 4 forks source link

W1D3 JCB добавить проверку на соответствие публичных методов тем что указаны в задании #188

Open cardinalnsk opened 8 months ago

cardinalnsk commented 8 months ago

ListNode в нашем случае является DoubleLinkedList или другими словами NoSQL БД, хранящая в себе некотрые данные. Соответсвенно, создание публичных методов которые могут допустим менять value неприемлимо. Примерный вариант реализации теста

  @Test
  @DisplayName("Checking public methods from a task")
  public void testPublicMethods() {
    var listNodeClass = ListNode.class;
    var expectedPublicMethodNames = Stream.of("toString", "getValue", "setPrev", "setNext", "getNext", "getPrev")
            .sorted()
            .toList();

    var actualPublicMethodNames = Arrays.stream(listNodeClass.getDeclaredMethods())
            .filter(method -> method.getModifiers() == Modifier.PUBLIC)
            .map(Method::getName)
            .sorted()
            .toList();

    Truth.assertWithMessage("ListNode security compromised")
            .that(actualPublicMethodNames).isEqualTo(expectedPublicMethodNames);
  }