Skip to content

Instantly share code, notes, and snippets.

View CheolhoJeon's full-sized avatar
🙏

Cheolho Jeon CheolhoJeon

🙏
View GitHub Profile
@PostMapping("/register/step2")
public String handleStep2(HttpServletRequest request) {
String agreeParam = request.getParameter("agree");
}
@PostMapping("/register/step2")
public String handleStep2(@RequestParam(value="agree", defaultValue="false") Boolean agreeVal) {
...
}
package chap07;
import java.time.LocalDateTime;
public class AutoDebitRegister {
private CardNumberValidator validator;
private AutoDebitInfoRepository repository;
public AutoDebitRegister(final CardNumberValidator validator, final AutoDebitInfoRepository repository) {
public class AutoDebitRegister {
private CardNumberValidator validator;
private AutoDebitInfoRepository repository;
public AutoDebitRegister(final CardNumberValidator validator, final AutoDebitInfoRepository repository) {
this.validator = validator;
this.repository = repository;
}
public class CardNumberValidator {
public CardValidity validate(String cardNumber) {
HttpClient httpClient = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://some-external-pg.com/card"))
.header("Content-Type", "text/plain")
.POST(HttpRequest.BodyPublishers.ofString(cardNumber))
.build();
try {
public class AutoDebitRegisterTest {
private AutoDebitRegister register;
@BeforeEach
void setUp() {
CardNumberValidator validator = new CardNumberValidator();
AutoDebitInfoRepository repository = new JpaAutoDebitInfoRepository();
register = new AutoDebitRegister(validator, repository);
}
public class StubCardNumberValidator extends CardNumberValidator {
private String invalidNo;
@Override
public CardValidity validate(final String cardNumber) {
if (invalidNo != null && invalidNo.equals(cardNumber)) {
return CardValidity.INVALID;
}
return CardValidity.VALID;
public interface AutoDebitInfoRepository {
void save(AutoDebitInfo info);
AutoDebitInfo findOne(String userId);
}
public class StubAutoDebitInfoRepository implements AutoDebitInfoRepository {
private Map<String, AutoDebitInfo> infos = new HashMap<>();
@Override
public void save(final AutoDebitInfo info) {
infos.put(info.getUserId(), info);
}
@Override
public class AutoDebitRegisterStubTest {
private AutoDebitRegister register;
private StubCardNumberValidator stubValidator;
private MemoryAutoDebitInfoRepository repository;
@BeforeEach
void setUp() {
this.stubValidator = new StubCardNumberValidator();
this.repository = new MemoryAutoDebitInfoRepository();