diff --git a/CR-TP3/CR-TP3.pdf b/CR-TP3/CR-TP3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..66dd09139d79614ca658c46291e7b6f3e9fe0b1d Binary files /dev/null and b/CR-TP3/CR-TP3.pdf differ diff --git a/TP3/src/main/java/interfacemanualmocking/AuthenticationByBiometryService.java b/TP3/src/main/java/interfacemanualmocking/AuthenticationByBiometryService.java index aaa4ced0c74c423c43e46269405c83ca90e89a3d..7b45507861424d5cf069e4eababe7c3e7d8b635c 100644 --- a/TP3/src/main/java/interfacemanualmocking/AuthenticationByBiometryService.java +++ b/TP3/src/main/java/interfacemanualmocking/AuthenticationByBiometryService.java @@ -5,13 +5,16 @@ import authentication.Strength; public class AuthenticationByBiometryService implements AuthenticationService { private DirectoryInterface directory; - private StrengthEstimationServiceInterface strengthEstimationService; + private Strength strength; - public AuthenticationByBiometryService(DirectoryInterface directory, StrengthEstimationServiceInterface strengthEstimationService) { + public AuthenticationByBiometryService(DirectoryInterface directory, Strength strength) { this.directory = directory; - this.strengthEstimationService = strengthEstimationService; + this.strength = strength; } + public void setDirectory(DirectoryInterface directory) { + this.directory = directory; + } @Override public boolean isAMatch(String identifier, String autenthicationData) { diff --git a/TP3/src/main/java/interfacemanualmocking/AuthenticationByPasswordService.java b/TP3/src/main/java/interfacemanualmocking/AuthenticationByPasswordService.java index e6ce7d3a8944bd460ccce8a11d866f521cd1ab15..4c5b7c730d26f8b44286939d94e0272c0751620b 100644 --- a/TP3/src/main/java/interfacemanualmocking/AuthenticationByPasswordService.java +++ b/TP3/src/main/java/interfacemanualmocking/AuthenticationByPasswordService.java @@ -5,8 +5,15 @@ import authentication.Strength; public class AuthenticationByPasswordService implements AuthenticationService { private DirectoryInterface directory; + + + private StrengthEstimationServiceInterface strengthEstimationService; + public void setStrengthEstimationService(StrengthEstimationServiceInterface strengthEstimationService) { + this.strengthEstimationService = strengthEstimationService; + } + public AuthenticationByPasswordService(DirectoryInterface directory, StrengthEstimationServiceInterface strengthEstimationService) { this.directory = directory; this.strengthEstimationService = strengthEstimationService; @@ -23,28 +30,34 @@ public class AuthenticationByPasswordService implements AuthenticationService { public Strength dataStrenth(String autenthicationData) { int datasize = autenthicationData.length(); int alphabetSize = 142; - int strength = strengthEstimationService.equivalentBitLength(alphabetSize,datasize) + int strength = strengthEstimationService.equivalentBitLength(alphabetSize,datasize); + + Strength result = null ; if( strength >= 0 && strength <= 49 ) { - return Strength.VERY_WEAK; + result = Strength.VERY_WEAK; } - if( strength >= 50 && strength <= 79 ) { - return Strength.WEAK; + else if ( strength >= 50 && strength <= 79 ) { + result = Strength.WEAK; } - if ( strength >= 80 && strength <= 99 ) { - return Strength.REGULAR; + else if ( strength >= 80 && strength <= 99 ) { + result = Strength.REGULAR; } - if ( strength >= 100 ) { - return Strength.STRONG; + else if ( strength >= 100 ) { + result = Strength.STRONG; } -} - private boolean isMatch(String identifier, String autenthicationData) { - String match = directory.getMatch(identifier); - return match.equals(autenthicationData); + return result; + } + public void setDirectory(DirectoryInterface directory) { + this.directory = directory; } + +} + + //private StrengthEstimationServiceInterface dataStrenth(String autenthicationData) { // int alphabetSize = 0; // int datasize = autenthicationData.length(); //return strengthEstimationService.equivalentBitLength(alphabetSize, datasize); - } + //} diff --git a/TP3/src/main/java/interfacemanualmocking/MockDirectory.java b/TP3/src/main/java/interfacemanualmocking/MockDirectory.java new file mode 100644 index 0000000000000000000000000000000000000000..d6d34311b781e771e823b8af16a12077138e56a6 --- /dev/null +++ b/TP3/src/main/java/interfacemanualmocking/MockDirectory.java @@ -0,0 +1,20 @@ +package interfacemanualmocking; + +import java.util.HashMap; +import java.util.Map; + +public class MockDirectory implements DirectoryInterface{ + private Map<String, String> dataMap; + + public MockDirectory() { + dataMap = new HashMap<>(); + dataMap.put("regix", "azerty"); + dataMap.put("setondji", "mdpFort222"); + } + + @Override + public String getMatch(String identifier) { + System.out.println(dataMap.get(identifier)); + return dataMap.get(identifier); + } +} diff --git a/TP3/src/main/java/interfacemanualmocking/MockStrengthEstimationService.java b/TP3/src/main/java/interfacemanualmocking/MockStrengthEstimationService.java new file mode 100644 index 0000000000000000000000000000000000000000..21412b0819f2e10b94b07ea83e4547988eda8526 --- /dev/null +++ b/TP3/src/main/java/interfacemanualmocking/MockStrengthEstimationService.java @@ -0,0 +1,28 @@ +package interfacemanualmocking; + +public class MockStrengthEstimationService implements StrengthEstimationServiceInterface{ + private int dataSize; + private int alphabetSize; + + public MockStrengthEstimationService() { + this.dataSize = 0; + this.alphabetSize = 0; + } + @Override + public int equivalentBitLength(int alphabetSize, int datasize) { + if(datasize > 0 && datasize < ((20 * 49)/ 142)){ + return 10; + } + if (datasize < ((20 * 79)/ 142)){ + return 60; + } + if (datasize < ((20 * 99)/ 142)){ + return 82; + } + if (datasize >= 20){ + return 110; + } + + return alphabetSize; + } +} diff --git a/TP3/src/test/java/AuthenticationByBiometryServiceTest.java b/TP3/src/test/java/AuthenticationByBiometryServiceTest.java new file mode 100644 index 0000000000000000000000000000000000000000..e3d80c286d4b329bbb2935f6a9a7c458bda7a79f --- /dev/null +++ b/TP3/src/test/java/AuthenticationByBiometryServiceTest.java @@ -0,0 +1,49 @@ +import interfacemanualmocking.AuthenticationByBiometryService; +import interfacemanualmocking.AuthenticationByPasswordService; +import interfacemanualmocking.MockDirectory; +import interfacemanualmocking.MockStrengthEstimationService; +import org.junit.jupiter.api.*; + +import static authentication.Strength.*; +import static authentication.Strength.STRONG; +import static org.assertj.core.api.AssertionsForClassTypes.assertThat; + +public class AuthenticationByBiometryServiceTest { + private MockDirectory directory; + private AuthenticationByBiometryService authenticationByBiometryService; + + @BeforeAll + static void setUpBeforeClass() throws Exception { + System.out.println("Before all"); + } + + @AfterAll + static void tearDownAfterClass() throws Exception { + System.out.println("After all"); + } + + @BeforeEach + void setUp() { + directory = new MockDirectory(); + authenticationByBiometryService = new AuthenticationByBiometryService(directory, STRONG); + authenticationByBiometryService.setDirectory(directory); + } + + + @AfterEach + void tearDown() throws Exception { + System.out.println("After each"); + } + + @Test + void testIsAMatch() { + assertThat(authenticationByBiometryService.isAMatch("regix", "azerty")).isTrue(); + + } + + @Test + void testDataStrenth() { + assertThat(authenticationByBiometryService.dataStrenth("azerty")).isEqualTo(STRONG); + assertThat(authenticationByBiometryService.dataStrenth("azertyuiopqsdfghjklmwxcvbn1234567890")).isEqualTo(STRONG); + } +} diff --git a/TP3/src/test/java/AuthenticationByPasswordServiceTest.java b/TP3/src/test/java/AuthenticationByPasswordServiceTest.java new file mode 100644 index 0000000000000000000000000000000000000000..8961961bcef50e2c32918d9874bd93ff6ad2b2c8 --- /dev/null +++ b/TP3/src/test/java/AuthenticationByPasswordServiceTest.java @@ -0,0 +1,54 @@ +import interfacemanualmocking.AuthenticationByPasswordService; +import interfacemanualmocking.MockDirectory; +import interfacemanualmocking.MockStrengthEstimationService; +import org.junit.jupiter.api.*; + +import static authentication.Strength.*; +import static org.assertj.core.api.AssertionsForClassTypes.assertThat; + +public class AuthenticationByPasswordServiceTest { + private MockDirectory directory; + private MockStrengthEstimationService strengthEstimationService; + + private AuthenticationByPasswordService authenticationByPasswordService; + + @BeforeAll + static void setUpBeforeClass() throws Exception { + System.out.println("Before all"); + } + + @AfterAll + static void tearDownAfterClass() throws Exception { + System.out.println("After all"); + } + + @BeforeEach + void setUp() { + directory = new MockDirectory(); + strengthEstimationService = new MockStrengthEstimationService(); + authenticationByPasswordService = new AuthenticationByPasswordService(directory, strengthEstimationService); + authenticationByPasswordService.setDirectory(directory); + authenticationByPasswordService.setStrengthEstimationService(strengthEstimationService); + } + + + @AfterEach + void tearDown() throws Exception { + System.out.println("After each"); + } + + @Test + void testIsAMatch() { + assertThat(authenticationByPasswordService.isAMatch("regix", "azerty")).isTrue(); + assertThat(authenticationByPasswordService.isAMatch("setondji", "mdpFo222")).isFalse(); + } + + @Test + void testDataStrenth() { + assertThat(authenticationByPasswordService.dataStrenth("az")).isEqualTo(VERY_WEAK); + assertThat(authenticationByPasswordService.dataStrenth("azerTY")).isEqualTo(WEAK); + assertThat(authenticationByPasswordService.dataStrenth("azertyFFDD5")).isEqualTo(REGULAR); + assertThat(authenticationByPasswordService.dataStrenth("azertyuiopqsdfghjklmwxcvbn1234567890")).isEqualTo(STRONG); + } + +}