init: 클린 기반 auth 서버 설계
This commit is contained in:
+1
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>AuthProvider</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">project-auth-server</a> > <a href="index.html" class="el_package">com.project.auth.domain.user.model</a> > <span class="el_class">AuthProvider</span></div><h1>AuthProvider</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 9</td><td class="ctr2">100%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">1</td><td class="ctr1">0</td><td class="ctr2">2</td><td class="ctr1">0</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="AuthProvider.java.html#L3" class="el_method">static {...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="9" alt="9"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i0">2</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.14.202510111229</span></div></body></html>
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>AuthProvider.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">project-auth-server</a> > <a href="index.source.html" class="el_package">com.project.auth.domain.user.model</a> > <span class="el_source">AuthProvider.java</span></div><h1>AuthProvider.java</h1><pre class="source lang-java linenums">package com.project.auth.domain.user.model;
|
||||
|
||||
<span class="fc" id="L3">public enum AuthProvider {</span>
|
||||
<span class="fc" id="L4"> KEYCLOAK</span>
|
||||
}
|
||||
</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.14.202510111229</span></div></body></html>
|
||||
+1
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ProviderSubject</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">project-auth-server</a> > <a href="index.html" class="el_package">com.project.auth.domain.user.model</a> > <span class="el_class">ProviderSubject</span></div><h1>ProviderSubject</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">5 of 24</td><td class="ctr2">79%</td><td class="bar">2 of 4</td><td class="ctr2">50%</td><td class="ctr1">2</td><td class="ctr2">4</td><td class="ctr1">1</td><td class="ctr2">6</td><td class="ctr1">0</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a1"><a href="ProviderSubject.java.html#L5" class="el_method">ProviderSubject(String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="31" height="10" title="5" alt="5"/><img src="../jacoco-resources/greenbar.gif" width="88" height="10" title="14" alt="14"/></td><td class="ctr2" id="c1">73%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="2" alt="2"/><img src="../jacoco-resources/greenbar.gif" width="60" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">50%</td><td class="ctr1" id="f0">2</td><td class="ctr2" id="g0">3</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">5</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="ProviderSubject.java.html#L13" class="el_method">from(String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="31" height="10" title="5" alt="5"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.14.202510111229</span></div></body></html>
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ProviderSubject.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">project-auth-server</a> > <a href="index.source.html" class="el_package">com.project.auth.domain.user.model</a> > <span class="el_source">ProviderSubject.java</span></div><h1>ProviderSubject.java</h1><pre class="source lang-java linenums">package com.project.auth.domain.user.model;
|
||||
|
||||
public record ProviderSubject(String value) {
|
||||
|
||||
<span class="fc" id="L5"> public ProviderSubject {</span>
|
||||
<span class="pc bpc" id="L6" title="2 of 4 branches missed."> if (value == null || value.isBlank()) {</span>
|
||||
<span class="nc" id="L7"> throw new IllegalArgumentException("providerSubject must not be blank.");</span>
|
||||
}
|
||||
<span class="fc" id="L9"> value = value.trim();</span>
|
||||
<span class="fc" id="L10"> }</span>
|
||||
|
||||
public static ProviderSubject from(String value) {
|
||||
<span class="fc" id="L13"> return new ProviderSubject(value);</span>
|
||||
}
|
||||
}
|
||||
</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.14.202510111229</span></div></body></html>
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,77 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>User.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">project-auth-server</a> > <a href="index.source.html" class="el_package">com.project.auth.domain.user.model</a> > <span class="el_source">User.java</span></div><h1>User.java</h1><pre class="source lang-java linenums">package com.project.auth.domain.user.model;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.Objects;
|
||||
import java.util.UUID;
|
||||
|
||||
public final class User {
|
||||
|
||||
private final UUID id;
|
||||
private final UserEmail email;
|
||||
private final UserName name;
|
||||
private final AuthProvider provider;
|
||||
private final ProviderSubject providerSubject;
|
||||
private final Instant createdAt;
|
||||
|
||||
private User(
|
||||
UUID id,
|
||||
UserEmail email,
|
||||
UserName name,
|
||||
AuthProvider provider,
|
||||
ProviderSubject providerSubject,
|
||||
Instant createdAt
|
||||
<span class="fc" id="L23"> ) {</span>
|
||||
<span class="fc" id="L24"> this.id = Objects.requireNonNull(id, "id must not be null");</span>
|
||||
<span class="fc" id="L25"> this.email = Objects.requireNonNull(email, "email must not be null");</span>
|
||||
<span class="fc" id="L26"> this.name = Objects.requireNonNull(name, "name must not be null");</span>
|
||||
<span class="fc" id="L27"> this.provider = Objects.requireNonNull(provider, "provider must not be null");</span>
|
||||
<span class="fc" id="L28"> this.providerSubject = Objects.requireNonNull(providerSubject, "providerSubject must not be null");</span>
|
||||
<span class="fc" id="L29"> this.createdAt = Objects.requireNonNull(createdAt, "createdAt must not be null");</span>
|
||||
<span class="fc" id="L30"> }</span>
|
||||
|
||||
public static User registerKeycloak(
|
||||
UUID id,
|
||||
UserEmail email,
|
||||
UserName name,
|
||||
String providerSubject,
|
||||
Instant createdAt
|
||||
) {
|
||||
<span class="fc" id="L39"> return new User(id, email, name, AuthProvider.KEYCLOAK, ProviderSubject.from(providerSubject), createdAt);</span>
|
||||
}
|
||||
|
||||
public static User restore(
|
||||
UUID id,
|
||||
UserEmail email,
|
||||
UserName name,
|
||||
AuthProvider provider,
|
||||
String providerSubject,
|
||||
Instant createdAt
|
||||
) {
|
||||
<span class="fc" id="L50"> return new User(id, email, name, provider, ProviderSubject.from(providerSubject), createdAt);</span>
|
||||
}
|
||||
|
||||
public UUID getId() {
|
||||
<span class="fc" id="L54"> return id;</span>
|
||||
}
|
||||
|
||||
public String getEmail() {
|
||||
<span class="fc" id="L58"> return email.value();</span>
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
<span class="fc" id="L62"> return name.value();</span>
|
||||
}
|
||||
|
||||
public AuthProvider getProvider() {
|
||||
<span class="fc" id="L66"> return provider;</span>
|
||||
}
|
||||
|
||||
public String getProviderSubject() {
|
||||
<span class="fc" id="L70"> return providerSubject.value();</span>
|
||||
}
|
||||
|
||||
public Instant getCreatedAt() {
|
||||
<span class="fc" id="L74"> return createdAt;</span>
|
||||
}
|
||||
}
|
||||
</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.14.202510111229</span></div></body></html>
|
||||
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>UserEmail</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">project-auth-server</a> > <a href="index.html" class="el_package">com.project.auth.domain.user.model</a> > <span class="el_class">UserEmail</span></div><h1>UserEmail</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">8 of 48</td><td class="ctr2">83%</td><td class="bar">4 of 10</td><td class="ctr2">60%</td><td class="ctr1">4</td><td class="ctr2">8</td><td class="ctr1">2</td><td class="ctr2">11</td><td class="ctr1">0</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a0"><a href="UserEmail.java.html#L22" class="el_method">from(String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="4" alt="4"/><img src="../jacoco-resources/greenbar.gif" width="102" height="10" title="24" alt="24"/></td><td class="ctr2" id="c1">85%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="2" alt="2"/><img src="../jacoco-resources/greenbar.gif" width="80" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">66%</td><td class="ctr1" id="f0">2</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">6</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="UserEmail.java.html#L15" class="el_method">UserEmail(String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="4" alt="4"/><img src="../jacoco-resources/greenbar.gif" width="47" height="10" title="11" alt="11"/></td><td class="ctr2" id="c2">73%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="2" alt="2"/><img src="../jacoco-resources/greenbar.gif" width="40" height="10" title="2" alt="2"/></td><td class="ctr2" id="e1">50%</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">4</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="UserEmail.java.html#L10" class="el_method">static {...}</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="21" height="10" title="5" alt="5"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.14.202510111229</span></div></body></html>
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>UserEmail.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">project-auth-server</a> > <a href="index.source.html" class="el_package">com.project.auth.domain.user.model</a> > <span class="el_source">UserEmail.java</span></div><h1>UserEmail.java</h1><pre class="source lang-java linenums">package com.project.auth.domain.user.model;
|
||||
|
||||
import com.project.auth.domain.user.exception.InvalidUserEmailException;
|
||||
|
||||
import java.util.Locale;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public record UserEmail(String value) {
|
||||
|
||||
<span class="fc" id="L10"> private static final Pattern EMAIL_PATTERN = Pattern.compile(</span>
|
||||
"^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$",
|
||||
Pattern.CASE_INSENSITIVE
|
||||
);
|
||||
|
||||
<span class="fc" id="L15"> public UserEmail {</span>
|
||||
<span class="pc bpc" id="L16" title="2 of 4 branches missed."> if (value == null || value.isBlank()) {</span>
|
||||
<span class="nc" id="L17"> throw new InvalidUserEmailException();</span>
|
||||
}
|
||||
<span class="fc" id="L19"> }</span>
|
||||
|
||||
public static UserEmail from(String rawEmail) {
|
||||
<span class="pc bpc" id="L22" title="2 of 4 branches missed."> if (rawEmail == null || rawEmail.isBlank()) {</span>
|
||||
<span class="nc" id="L23"> throw new InvalidUserEmailException();</span>
|
||||
}
|
||||
|
||||
<span class="fc" id="L26"> String normalizedEmail = rawEmail.trim().toLowerCase(Locale.ROOT);</span>
|
||||
<span class="fc bfc" id="L27" title="All 2 branches covered."> if (!EMAIL_PATTERN.matcher(normalizedEmail).matches()) {</span>
|
||||
<span class="fc" id="L28"> throw new InvalidUserEmailException();</span>
|
||||
}
|
||||
|
||||
<span class="fc" id="L31"> return new UserEmail(normalizedEmail);</span>
|
||||
}
|
||||
}
|
||||
</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.14.202510111229</span></div></body></html>
|
||||
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>UserName</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">project-auth-server</a> > <a href="index.html" class="el_package">com.project.auth.domain.user.model</a> > <span class="el_class">UserName</span></div><h1>UserName</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">8 of 37</td><td class="ctr2">78%</td><td class="bar">4 of 8</td><td class="ctr2">50%</td><td class="ctr1">4</td><td class="ctr2">6</td><td class="ctr1">2</td><td class="ctr2">9</td><td class="ctr1">0</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a1"><a href="UserName.java.html#L7" class="el_method">UserName(String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="8" alt="8"/><img src="../jacoco-resources/greenbar.gif" width="90" height="10" title="24" alt="24"/></td><td class="ctr2" id="c1">75%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="4" alt="4"/><img src="../jacoco-resources/greenbar.gif" width="60" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">50%</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">5</td><td class="ctr1" id="h0">2</td><td class="ctr2" id="i0">8</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="UserName.java.html#L21" class="el_method">from(String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="18" height="10" title="5" alt="5"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.14.202510111229</span></div></body></html>
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>UserName.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">project-auth-server</a> > <a href="index.source.html" class="el_package">com.project.auth.domain.user.model</a> > <span class="el_source">UserName.java</span></div><h1>UserName.java</h1><pre class="source lang-java linenums">package com.project.auth.domain.user.model;
|
||||
|
||||
import com.project.auth.domain.user.exception.InvalidUserNameException;
|
||||
|
||||
public record UserName(String value) {
|
||||
|
||||
<span class="fc" id="L7"> public UserName {</span>
|
||||
<span class="pc bpc" id="L8" title="2 of 4 branches missed."> if (value == null || value.isBlank()) {</span>
|
||||
<span class="nc" id="L9"> throw new InvalidUserNameException();</span>
|
||||
}
|
||||
|
||||
<span class="fc" id="L12"> String normalizedName = value.trim();</span>
|
||||
<span class="pc bpc" id="L13" title="2 of 4 branches missed."> if (normalizedName.length() < 2 || normalizedName.length() > 20) {</span>
|
||||
<span class="nc" id="L14"> throw new InvalidUserNameException();</span>
|
||||
}
|
||||
|
||||
<span class="fc" id="L17"> value = normalizedName;</span>
|
||||
<span class="fc" id="L18"> }</span>
|
||||
|
||||
public static UserName from(String rawName) {
|
||||
<span class="fc" id="L21"> return new UserName(rawName);</span>
|
||||
}
|
||||
}
|
||||
</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.14.202510111229</span></div></body></html>
|
||||
File diff suppressed because one or more lines are too long
+1
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user