From 885278e502f896f232b712038613bb7c8b01ec62 Mon Sep 17 00:00:00 2001 From: Umang Budhwar Date: Tue, 23 Jun 2020 21:49:35 +0530 Subject: [PATCH] Added test cases for accessing all data types. --- .../access/privatefields/Person.java | 76 +++++++++++++-- .../AccessPrivateFieldsUnitTest.java | 95 ++++++++++++++++--- 2 files changed, 153 insertions(+), 18 deletions(-) diff --git a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/access/privatefields/Person.java b/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/access/privatefields/Person.java index 2ec263f6ae..433dc7636d 100755 --- a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/access/privatefields/Person.java +++ b/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/access/privatefields/Person.java @@ -4,7 +4,21 @@ public class Person { private String name = "John"; - private int age = 30; + private byte age = 30; + + private short uidNumber = 5555; + + private int pinCode = 452002; + + private long contactNumber = 123456789L; + + private float height = 6.1242f; + + private double weight = 75.2564; + + private char gender = 'M'; + + private boolean active = true; public String getName() { return name; @@ -14,20 +28,68 @@ public class Person { this.name = name; } - public int getAge() { + public byte getAge() { return age; } - public void setAge(int age) { + public void setAge(byte age) { this.age = age; } - private String greet(String name) { - return "Hello " + name; + public short getUidNumber() { + return uidNumber; } - private int divideByZeroExample() { - return 1 / 0; + public void setUidNumber(short uidNumber) { + this.uidNumber = uidNumber; + } + + public int getPinCode() { + return pinCode; + } + + public void setPinCode(int pinCode) { + this.pinCode = pinCode; + } + + public long getContactNumber() { + return contactNumber; + } + + public void setContactNumber(long contactNumber) { + this.contactNumber = contactNumber; + } + + public float getHeight() { + return height; + } + + public void setHeight(float height) { + this.height = height; + } + + public double getWeight() { + return weight; + } + + public void setWeight(double weight) { + this.weight = weight; + } + + public char getGender() { + return gender; + } + + public void setGender(char gender) { + this.gender = gender; + } + + public boolean isActive() { + return active; + } + + public void setActive(boolean active) { + this.active = active; } } diff --git a/core-java-modules/core-java-reflection/src/test/java/com/baeldung/reflection/access/privatefields/AccessPrivateFieldsUnitTest.java b/core-java-modules/core-java-reflection/src/test/java/com/baeldung/reflection/access/privatefields/AccessPrivateFieldsUnitTest.java index c74af1fe90..69f3eebe71 100644 --- a/core-java-modules/core-java-reflection/src/test/java/com/baeldung/reflection/access/privatefields/AccessPrivateFieldsUnitTest.java +++ b/core-java-modules/core-java-reflection/src/test/java/com/baeldung/reflection/access/privatefields/AccessPrivateFieldsUnitTest.java @@ -11,39 +11,112 @@ public class AccessPrivateFieldsUnitTest { public void whenGetFields_thenSuccess() throws IllegalAccessException, IllegalArgumentException, NoSuchFieldException, NullPointerException { Person person = new Person(); - Field fieldName = person.getClass() + Field nameField = person.getClass() .getDeclaredField("name"); - fieldName.setAccessible(true); + nameField.setAccessible(true); - String name = (String) fieldName.get(person); + String name = (String) nameField.get(person); - Field fieldAge = person.getClass() + Field ageField = person.getClass() .getDeclaredField("age"); - fieldAge.setAccessible(true); + ageField.setAccessible(true); - int age = fieldAge.getInt(person); + byte age = ageField.getByte(person); Assertions.assertEquals("John", name); Assertions.assertEquals(30, age); } + @Test + public void whenGetIntegerFields_thenSuccess() throws IllegalAccessException, IllegalArgumentException, NoSuchFieldException, NullPointerException { + Person person = new Person(); + + Field uidNumberField = person.getClass() + .getDeclaredField("uidNumber"); + uidNumberField.setAccessible(true); + + short uidNumber = uidNumberField.getShort(person); + + Field pinCodeField = person.getClass() + .getDeclaredField("pinCode"); + pinCodeField.setAccessible(true); + + int pinCode = pinCodeField.getInt(person); + + Field contactNumberField = person.getClass() + .getDeclaredField("contactNumber"); + contactNumberField.setAccessible(true); + + long contactNumber = contactNumberField.getLong(person); + + Assertions.assertEquals(5555, uidNumber); + Assertions.assertEquals(452002, pinCode); + Assertions.assertEquals(123456789L, contactNumber); + } + + @Test + public void whenGetFloatingTypeFields_thenSuccess() throws IllegalAccessException, IllegalArgumentException, NoSuchFieldException, NullPointerException { + Person person = new Person(); + + Field heightField = person.getClass() + .getDeclaredField("height"); + heightField.setAccessible(true); + + float height = heightField.getFloat(person); + + Field weightField = person.getClass() + .getDeclaredField("weight"); + weightField.setAccessible(true); + + double weight = weightField.getDouble(person); + + Assertions.assertEquals(6.1242f, height); + Assertions.assertEquals(75.2564, weight); + } + + @Test + public void whenGetCharacterFields_thenSuccess() throws IllegalAccessException, IllegalArgumentException, NoSuchFieldException, NullPointerException { + Person person = new Person(); + + Field genderField = person.getClass() + .getDeclaredField("gender"); + genderField.setAccessible(true); + + char gender = genderField.getChar(person); + + Assertions.assertEquals('M', gender); + } + + @Test + public void whenGetBooleanFields_thenSuccess() throws IllegalAccessException, IllegalArgumentException, NoSuchFieldException, NullPointerException { + Person person = new Person(); + + Field activeField = person.getClass() + .getDeclaredField("active"); + activeField.setAccessible(true); + + boolean active = activeField.getBoolean(person); + + Assertions.assertTrue(active); + } + @Test public void givenInt_whenGetStringField_thenIllegalArgumentException() throws IllegalAccessException, IllegalArgumentException, NoSuchFieldException, NullPointerException { Person person = new Person(); - Field fieldName = person.getClass() + Field nameField = person.getClass() .getDeclaredField("name"); - fieldName.setAccessible(true); + nameField.setAccessible(true); - Assertions.assertThrows(IllegalArgumentException.class, () -> fieldName.getInt(person)); + Assertions.assertThrows(IllegalArgumentException.class, () -> nameField.getInt(person)); } @Test public void whenFieldNotSetAccessible_thenIllegalAccessException() throws IllegalAccessException, IllegalArgumentException, NoSuchFieldException, NullPointerException { Person person = new Person(); - Field fieldName = person.getClass() + Field nameField = person.getClass() .getDeclaredField("name"); - Assertions.assertThrows(IllegalAccessException.class, () -> fieldName.get(person)); + Assertions.assertThrows(IllegalAccessException.class, () -> nameField.get(person)); } @Test