From cb77b9f79baf0cc0f0ce874c39d4eb70c77ae2a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=20G=C3=B3mez?= Date: Mon, 26 Apr 2021 12:10:48 +0200 Subject: [PATCH] [java][social_login-01_base] Add base structure --- .../java-social_login-01_base/build.gradle | 4 +- .../login/EmailLoginPostController.java | 7 --- .../login/TwitterLoginPostController.java | 7 --- .../sign_up/EmailSignUpPostController.java | 7 --- .../sign_up/TwitterSignUpPostController.java | 7 --- .../{ => domain}/EmailLoginProvider.java | 3 +- .../{ => domain}/FacebookLoginProvider.java | 3 +- .../{ => domain}/GitHubLoginProvider.java | 2 +- .../login/{ => domain}/LoginProvider.java | 2 +- .../{ => domain}/TwitterLoginProvider.java | 3 +- .../ecommerce/login_attempt/LoginAttempt.java | 7 --- .../application/add/LoginAttemptAdder.java | 16 ++++++ .../domain/EmailLoginAttempt.java | 15 ++++++ .../login_attempt/domain/LoginAttempt.java | 13 +++++ .../domain/LoginAttemptRepository.java | 7 +++ .../domain/TwitterLoginAttempt.java | 15 ++++++ .../format/EmailLoginAttemptFormatter.java | 15 ++++++ .../domain/format/LoginAttemptFormatter.java | 9 ++++ .../format/TwitterLoginAttemptFormatter.java | 15 ++++++ .../SdkAuth0LoginAttemptRepository.java | 28 ++++++++++ .../{ => domain}/EmailSignUpProvider.java | 3 +- .../{ => domain}/FacebookSignUpProvider.java | 3 +- .../{ => domain}/GitHubSignUpProvider.java | 3 +- .../sign_up/{ => domain}/SignUpProvider.java | 2 +- .../{ => domain}/TwitterSignUpProvider.java | 3 +- .../SdkAuth0LoginAttemptRepositoryShould.java | 54 +++++++++++++++++++ 26 files changed, 206 insertions(+), 47 deletions(-) delete mode 100644 examples/java/java-social_login-01_base/src/main/java/tv/codely/app/controller/login/EmailLoginPostController.java delete mode 100644 examples/java/java-social_login-01_base/src/main/java/tv/codely/app/controller/login/TwitterLoginPostController.java delete mode 100644 examples/java/java-social_login-01_base/src/main/java/tv/codely/app/controller/sign_up/EmailSignUpPostController.java delete mode 100644 examples/java/java-social_login-01_base/src/main/java/tv/codely/app/controller/sign_up/TwitterSignUpPostController.java rename examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/{ => domain}/EmailLoginProvider.java (87%) rename examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/{ => domain}/FacebookLoginProvider.java (87%) rename examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/{ => domain}/GitHubLoginProvider.java (88%) rename examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/{ => domain}/LoginProvider.java (83%) rename examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/{ => domain}/TwitterLoginProvider.java (87%) delete mode 100644 examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/LoginAttempt.java create mode 100644 examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/application/add/LoginAttemptAdder.java create mode 100644 examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/domain/EmailLoginAttempt.java create mode 100644 examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/domain/LoginAttempt.java create mode 100644 examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/domain/LoginAttemptRepository.java create mode 100644 examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/domain/TwitterLoginAttempt.java create mode 100644 examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/domain/format/EmailLoginAttemptFormatter.java create mode 100644 examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/domain/format/LoginAttemptFormatter.java create mode 100644 examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/domain/format/TwitterLoginAttemptFormatter.java create mode 100644 examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/infrastructure/SdkAuth0LoginAttemptRepository.java rename examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/{ => domain}/EmailSignUpProvider.java (86%) rename examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/{ => domain}/FacebookSignUpProvider.java (86%) rename examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/{ => domain}/GitHubSignUpProvider.java (87%) rename examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/{ => domain}/SignUpProvider.java (78%) rename examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/{ => domain}/TwitterSignUpProvider.java (86%) create mode 100644 examples/java/java-social_login-01_base/src/test/java/tv/codely/ecommerce/login_attempt/infrastructure/SdkAuth0LoginAttemptRepositoryShould.java diff --git a/examples/java/java-social_login-01_base/build.gradle b/examples/java/java-social_login-01_base/build.gradle index d020c1be..918fe927 100644 --- a/examples/java/java-social_login-01_base/build.gradle +++ b/examples/java/java-social_login-01_base/build.gradle @@ -11,8 +11,8 @@ dependencies { implementation 'org.apache.logging.log4j:log4j-core:2.12.1' implementation 'com.vlkan.log4j2:log4j2-logstash-layout:0.19' - testCompile 'org.junit.jupiter:junit-jupiter-api:5.5.1' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.5.1' + testImplementation 'org.junit.jupiter:junit-jupiter-api:5.5.2' + testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.5.2' } test { diff --git a/examples/java/java-social_login-01_base/src/main/java/tv/codely/app/controller/login/EmailLoginPostController.java b/examples/java/java-social_login-01_base/src/main/java/tv/codely/app/controller/login/EmailLoginPostController.java deleted file mode 100644 index a5e70be9..00000000 --- a/examples/java/java-social_login-01_base/src/main/java/tv/codely/app/controller/login/EmailLoginPostController.java +++ /dev/null @@ -1,7 +0,0 @@ -package tv.codely.app.controller.login; - -public final class EmailLoginPostController { - public void post(String email, String password) { - - } -} diff --git a/examples/java/java-social_login-01_base/src/main/java/tv/codely/app/controller/login/TwitterLoginPostController.java b/examples/java/java-social_login-01_base/src/main/java/tv/codely/app/controller/login/TwitterLoginPostController.java deleted file mode 100644 index 87a42f4b..00000000 --- a/examples/java/java-social_login-01_base/src/main/java/tv/codely/app/controller/login/TwitterLoginPostController.java +++ /dev/null @@ -1,7 +0,0 @@ -package tv.codely.app.controller.login; - -public final class TwitterLoginPostController { - public void post(String username, String token) { - - } -} diff --git a/examples/java/java-social_login-01_base/src/main/java/tv/codely/app/controller/sign_up/EmailSignUpPostController.java b/examples/java/java-social_login-01_base/src/main/java/tv/codely/app/controller/sign_up/EmailSignUpPostController.java deleted file mode 100644 index 6be0654f..00000000 --- a/examples/java/java-social_login-01_base/src/main/java/tv/codely/app/controller/sign_up/EmailSignUpPostController.java +++ /dev/null @@ -1,7 +0,0 @@ -package tv.codely.app.controller.sign_up; - -public final class EmailSignUpPostController { - public void post(String email, String password) { - - } -} diff --git a/examples/java/java-social_login-01_base/src/main/java/tv/codely/app/controller/sign_up/TwitterSignUpPostController.java b/examples/java/java-social_login-01_base/src/main/java/tv/codely/app/controller/sign_up/TwitterSignUpPostController.java deleted file mode 100644 index f939c968..00000000 --- a/examples/java/java-social_login-01_base/src/main/java/tv/codely/app/controller/sign_up/TwitterSignUpPostController.java +++ /dev/null @@ -1,7 +0,0 @@ -package tv.codely.app.controller.sign_up; - -public final class TwitterSignUpPostController { - public void post(String username, String token) { - - } -} diff --git a/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/EmailLoginProvider.java b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/domain/EmailLoginProvider.java similarity index 87% rename from examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/EmailLoginProvider.java rename to examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/domain/EmailLoginProvider.java index c13ac03f..ef6184f0 100644 --- a/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/EmailLoginProvider.java +++ b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/domain/EmailLoginProvider.java @@ -1,4 +1,4 @@ -package tv.codely.ecommerce.login; +package tv.codely.ecommerce.login.domain; public final class EmailLoginProvider extends LoginProvider { private final String email; @@ -6,6 +6,7 @@ public final class EmailLoginProvider extends LoginProvider { public EmailLoginProvider(String email, String password, String ip) { super("email", ip); + this.email = email; this.password = password; } diff --git a/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/FacebookLoginProvider.java b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/domain/FacebookLoginProvider.java similarity index 87% rename from examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/FacebookLoginProvider.java rename to examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/domain/FacebookLoginProvider.java index 9f42040e..3a776022 100644 --- a/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/FacebookLoginProvider.java +++ b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/domain/FacebookLoginProvider.java @@ -1,4 +1,4 @@ -package tv.codely.ecommerce.login; +package tv.codely.ecommerce.login.domain; public final class FacebookLoginProvider extends LoginProvider { private final String email; @@ -6,6 +6,7 @@ public final class FacebookLoginProvider extends LoginProvider { public FacebookLoginProvider(String email, String hash, String ip) { super("facebook", ip); + this.email = email; this.hash = hash; } diff --git a/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/GitHubLoginProvider.java b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/domain/GitHubLoginProvider.java similarity index 88% rename from examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/GitHubLoginProvider.java rename to examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/domain/GitHubLoginProvider.java index 6eb06f14..9efc80a0 100644 --- a/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/GitHubLoginProvider.java +++ b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/domain/GitHubLoginProvider.java @@ -1,4 +1,4 @@ -package tv.codely.ecommerce.login; +package tv.codely.ecommerce.login.domain; public final class GitHubLoginProvider extends LoginProvider { private final String username; diff --git a/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/LoginProvider.java b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/domain/LoginProvider.java similarity index 83% rename from examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/LoginProvider.java rename to examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/domain/LoginProvider.java index 6eaa35f2..238614c9 100644 --- a/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/LoginProvider.java +++ b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/domain/LoginProvider.java @@ -1,4 +1,4 @@ -package tv.codely.ecommerce.login; +package tv.codely.ecommerce.login.domain; public abstract class LoginProvider { private String provider; diff --git a/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/TwitterLoginProvider.java b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/domain/TwitterLoginProvider.java similarity index 87% rename from examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/TwitterLoginProvider.java rename to examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/domain/TwitterLoginProvider.java index 95c84230..a9541e73 100644 --- a/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/TwitterLoginProvider.java +++ b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login/domain/TwitterLoginProvider.java @@ -1,4 +1,4 @@ -package tv.codely.ecommerce.login; +package tv.codely.ecommerce.login.domain; public final class TwitterLoginProvider extends LoginProvider { private String username; @@ -6,6 +6,7 @@ public final class TwitterLoginProvider extends LoginProvider { public TwitterLoginProvider(String username, String token, String ip) { super("twitter", ip); + this.username = username; this.token = token; } diff --git a/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/LoginAttempt.java b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/LoginAttempt.java deleted file mode 100644 index 1eecfb73..00000000 --- a/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/LoginAttempt.java +++ /dev/null @@ -1,7 +0,0 @@ -package tv.codely.ecommerce.login_attempt; - -public abstract class LoginAttempt { - public LoginAttempt(String dsf) { - - } -} diff --git a/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/application/add/LoginAttemptAdder.java b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/application/add/LoginAttemptAdder.java new file mode 100644 index 00000000..db69b310 --- /dev/null +++ b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/application/add/LoginAttemptAdder.java @@ -0,0 +1,16 @@ +package tv.codely.ecommerce.login_attempt.application.add; + +import tv.codely.ecommerce.login_attempt.domain.LoginAttempt; +import tv.codely.ecommerce.login_attempt.domain.LoginAttemptRepository; + +public final class LoginAttemptAdder { + private final LoginAttemptRepository repository; + + public LoginAttemptAdder(LoginAttemptRepository repository) { + this.repository = repository; + } + + public void add(LoginAttempt loginAttempt) throws Exception { + this.repository.save(loginAttempt); + } +} diff --git a/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/domain/EmailLoginAttempt.java b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/domain/EmailLoginAttempt.java new file mode 100644 index 00000000..b21e6593 --- /dev/null +++ b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/domain/EmailLoginAttempt.java @@ -0,0 +1,15 @@ +package tv.codely.ecommerce.login_attempt.domain; + +public final class EmailLoginAttempt extends LoginAttempt { + private final String email; + + public EmailLoginAttempt(String ip, String email) { + super(ip); + + this.email = email; + } + + public String email() { + return email; + } +} diff --git a/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/domain/LoginAttempt.java b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/domain/LoginAttempt.java new file mode 100644 index 00000000..9983eac0 --- /dev/null +++ b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/domain/LoginAttempt.java @@ -0,0 +1,13 @@ +package tv.codely.ecommerce.login_attempt.domain; + +public abstract class LoginAttempt { + private final String ip; + + public LoginAttempt(String ip) { + this.ip = ip; + } + + public String ip() { + return ip; + } +} diff --git a/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/domain/LoginAttemptRepository.java b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/domain/LoginAttemptRepository.java new file mode 100644 index 00000000..45d1e2e2 --- /dev/null +++ b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/domain/LoginAttemptRepository.java @@ -0,0 +1,7 @@ +package tv.codely.ecommerce.login_attempt.domain; + +import java.util.HashMap; + +public interface LoginAttemptRepository { + HashMap save(LoginAttempt loginAttempt) throws Exception; +} diff --git a/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/domain/TwitterLoginAttempt.java b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/domain/TwitterLoginAttempt.java new file mode 100644 index 00000000..92172dcd --- /dev/null +++ b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/domain/TwitterLoginAttempt.java @@ -0,0 +1,15 @@ +package tv.codely.ecommerce.login_attempt.domain; + +public final class TwitterLoginAttempt extends LoginAttempt { + private final String username; + + public TwitterLoginAttempt(String ip, String username) { + super(ip); + + this.username = username; + } + + public String username() { + return username; + } +} diff --git a/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/domain/format/EmailLoginAttemptFormatter.java b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/domain/format/EmailLoginAttemptFormatter.java new file mode 100644 index 00000000..c6bc5a83 --- /dev/null +++ b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/domain/format/EmailLoginAttemptFormatter.java @@ -0,0 +1,15 @@ +package tv.codely.ecommerce.login_attempt.domain.format; + +import tv.codely.ecommerce.login_attempt.domain.EmailLoginAttempt; + +import java.util.HashMap; + +public final class EmailLoginAttemptFormatter extends LoginAttemptFormatter { + @Override + public HashMap format(EmailLoginAttempt loginAttempt) { + return new HashMap<>() {{ + put("ip", loginAttempt.ip()); + put("email", loginAttempt.email()); + }}; + } +} diff --git a/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/domain/format/LoginAttemptFormatter.java b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/domain/format/LoginAttemptFormatter.java new file mode 100644 index 00000000..eab024f9 --- /dev/null +++ b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/domain/format/LoginAttemptFormatter.java @@ -0,0 +1,9 @@ +package tv.codely.ecommerce.login_attempt.domain.format; + +import tv.codely.ecommerce.login_attempt.domain.LoginAttempt; + +import java.util.HashMap; + +public abstract class LoginAttemptFormatter { + public abstract HashMap format(T loginAttempt); +} diff --git a/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/domain/format/TwitterLoginAttemptFormatter.java b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/domain/format/TwitterLoginAttemptFormatter.java new file mode 100644 index 00000000..bb5ec9f3 --- /dev/null +++ b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/domain/format/TwitterLoginAttemptFormatter.java @@ -0,0 +1,15 @@ +package tv.codely.ecommerce.login_attempt.domain.format; + +import tv.codely.ecommerce.login_attempt.domain.TwitterLoginAttempt; + +import java.util.HashMap; + +public final class TwitterLoginAttemptFormatter extends LoginAttemptFormatter { + @Override + public HashMap format(TwitterLoginAttempt loginAttempt) { + return new HashMap<>() {{ + put("ip", loginAttempt.ip()); + put("username", loginAttempt.username()); + }}; + } +} diff --git a/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/infrastructure/SdkAuth0LoginAttemptRepository.java b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/infrastructure/SdkAuth0LoginAttemptRepository.java new file mode 100644 index 00000000..0aed2eca --- /dev/null +++ b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/login_attempt/infrastructure/SdkAuth0LoginAttemptRepository.java @@ -0,0 +1,28 @@ +package tv.codely.ecommerce.login_attempt.infrastructure; + +import tv.codely.ecommerce.login_attempt.domain.EmailLoginAttempt; +import tv.codely.ecommerce.login_attempt.domain.LoginAttempt; +import tv.codely.ecommerce.login_attempt.domain.LoginAttemptRepository; +import tv.codely.ecommerce.login_attempt.domain.TwitterLoginAttempt; +import tv.codely.ecommerce.login_attempt.domain.format.EmailLoginAttemptFormatter; +import tv.codely.ecommerce.login_attempt.domain.format.LoginAttemptFormatter; +import tv.codely.ecommerce.login_attempt.domain.format.TwitterLoginAttemptFormatter; + +import java.util.HashMap; + +public final class SdkAuth0LoginAttemptRepository implements LoginAttemptRepository { + @Override + public HashMap save(LoginAttempt loginAttempt) throws Exception { + LoginAttemptFormatter formatter; + + if (loginAttempt instanceof TwitterLoginAttempt) { + formatter = new TwitterLoginAttemptFormatter(); + } else if (loginAttempt instanceof EmailLoginAttempt) { + formatter = new EmailLoginAttemptFormatter(); + } else { + throw new Exception("There are no formatters for that attempt"); + } + + return formatter.format(loginAttempt); + } +} diff --git a/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/EmailSignUpProvider.java b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/domain/EmailSignUpProvider.java similarity index 86% rename from examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/EmailSignUpProvider.java rename to examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/domain/EmailSignUpProvider.java index 6d2d497f..11412ed5 100644 --- a/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/EmailSignUpProvider.java +++ b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/domain/EmailSignUpProvider.java @@ -1,4 +1,4 @@ -package tv.codely.ecommerce.sign_up; +package tv.codely.ecommerce.sign_up.domain; public final class EmailSignUpProvider extends SignUpProvider { private final String email; @@ -6,6 +6,7 @@ public final class EmailSignUpProvider extends SignUpProvider { public EmailSignUpProvider(String email, String password) { super("email"); + this.email = email; this.password = password; } diff --git a/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/FacebookSignUpProvider.java b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/domain/FacebookSignUpProvider.java similarity index 86% rename from examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/FacebookSignUpProvider.java rename to examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/domain/FacebookSignUpProvider.java index 74a8cd1b..244cbe7d 100644 --- a/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/FacebookSignUpProvider.java +++ b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/domain/FacebookSignUpProvider.java @@ -1,4 +1,4 @@ -package tv.codely.ecommerce.sign_up; +package tv.codely.ecommerce.sign_up.domain; public final class FacebookSignUpProvider extends SignUpProvider { private final String email; @@ -6,6 +6,7 @@ public final class FacebookSignUpProvider extends SignUpProvider { public FacebookSignUpProvider(String email, String hash) { super("facebook"); + this.email = email; this.hash = hash; } diff --git a/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/GitHubSignUpProvider.java b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/domain/GitHubSignUpProvider.java similarity index 87% rename from examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/GitHubSignUpProvider.java rename to examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/domain/GitHubSignUpProvider.java index c1981cce..2984a16d 100644 --- a/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/GitHubSignUpProvider.java +++ b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/domain/GitHubSignUpProvider.java @@ -1,4 +1,4 @@ -package tv.codely.ecommerce.sign_up; +package tv.codely.ecommerce.sign_up.domain; public final class GitHubSignUpProvider extends SignUpProvider { private final String username; @@ -6,6 +6,7 @@ public final class GitHubSignUpProvider extends SignUpProvider { public GitHubSignUpProvider(String username, String secretKey) { super("github"); + this.username = username; this.secretKey = secretKey; } diff --git a/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/SignUpProvider.java b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/domain/SignUpProvider.java similarity index 78% rename from examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/SignUpProvider.java rename to examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/domain/SignUpProvider.java index b0cabda2..65b13ec8 100644 --- a/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/SignUpProvider.java +++ b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/domain/SignUpProvider.java @@ -1,4 +1,4 @@ -package tv.codely.ecommerce.sign_up; +package tv.codely.ecommerce.sign_up.domain; public abstract class SignUpProvider { private String provider; diff --git a/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/TwitterSignUpProvider.java b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/domain/TwitterSignUpProvider.java similarity index 86% rename from examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/TwitterSignUpProvider.java rename to examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/domain/TwitterSignUpProvider.java index ab797cf7..887883ac 100644 --- a/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/TwitterSignUpProvider.java +++ b/examples/java/java-social_login-01_base/src/main/java/tv/codely/ecommerce/sign_up/domain/TwitterSignUpProvider.java @@ -1,4 +1,4 @@ -package tv.codely.ecommerce.sign_up; +package tv.codely.ecommerce.sign_up.domain; public final class TwitterSignUpProvider extends SignUpProvider { private String username; @@ -6,6 +6,7 @@ public final class TwitterSignUpProvider extends SignUpProvider { public TwitterSignUpProvider(String username, String token) { super("twitter"); + this.username = username; this.token = token; } diff --git a/examples/java/java-social_login-01_base/src/test/java/tv/codely/ecommerce/login_attempt/infrastructure/SdkAuth0LoginAttemptRepositoryShould.java b/examples/java/java-social_login-01_base/src/test/java/tv/codely/ecommerce/login_attempt/infrastructure/SdkAuth0LoginAttemptRepositoryShould.java new file mode 100644 index 00000000..952d4b36 --- /dev/null +++ b/examples/java/java-social_login-01_base/src/test/java/tv/codely/ecommerce/login_attempt/infrastructure/SdkAuth0LoginAttemptRepositoryShould.java @@ -0,0 +1,54 @@ +package tv.codely.ecommerce.login_attempt.infrastructure; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import tv.codely.ecommerce.login_attempt.domain.EmailLoginAttempt; +import tv.codely.ecommerce.login_attempt.domain.LoginAttempt; +import tv.codely.ecommerce.login_attempt.domain.TwitterLoginAttempt; + +import java.util.HashMap; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; + +final class SdkAuth0LoginAttemptRepositoryShould { + private SdkAuth0LoginAttemptRepository repository; + + @BeforeEach + protected void setUp() { + repository = new SdkAuth0LoginAttemptRepository(); + } + + @Test + void add_an_email_login_attempt() throws Exception { + EmailLoginAttempt loginAttempt = new EmailLoginAttempt("192.168.1.1", "some@demo.tv"); + HashMap expected = new HashMap<>() {{ + put("ip", "192.168.1.1"); + put("email", "some@demo.tv"); + }}; + + assertEquals(expected, repository.save(loginAttempt)); + } + + @Test + void add_a_twitter_login_attempt() throws Exception { + TwitterLoginAttempt loginAttempt = new TwitterLoginAttempt("192.168.1.2", "codelytv"); + HashMap expected = new HashMap<>() {{ + put("ip", "192.168.1.2"); + put("username", "codelytv"); + }}; + + assertEquals(expected, repository.save(loginAttempt)); + } + + @Test + void throw_an_exception_with_an_unknown_login_attempt() { + LoginAttempt loginAttempt = new LoginAttempt("192.168.1.3") { + public String name() { + return "unknown"; + } + }; + + assertThrows(Exception.class, () -> repository.save(loginAttempt)); + } +}