Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- === TEST ===
- package org.flyveleder.support;
- import org.junit.jupiter.api.Test;
- import java.time.LocalDate;
- import static org.junit.jupiter.api.Assertions.*;
- class AgeTest {
- @Test
- void getAge() {
- LocalDate birthDay =LocalDate.of(1975,11,8);
- LocalDateContract ldc = new MockLocalDateProvider();
- Age age = new Age(birthDay);
- age.setLocalDateProvider(ldc);
- assertEquals(24, age.getAge());
- }
- private class MockLocalDateProvider implements LocalDateContract {
- @Override
- public LocalDate now() {
- return LocalDate.of(2000,10,10);
- }
- }
- }
- === IMPL ===
- package org.flyveleder.support;
- import java.time.LocalDate;
- import java.time.Period;
- public class Age {
- private final LocalDate birthdate;
- private LocalDateContract localDateProvider = new LocalDateProvider();
- public Age(LocalDate birthdate) {
- assert birthdate != null;
- this.birthdate = birthdate;
- }
- public int getAge() {
- Period period = Period.between(birthdate, localDateProvider.now() );
- return period.getYears();
- }
- public boolean isBirthDay() {
- return birthdate.equals(localDateProvider.now());
- }
- public void setLocalDateProvider(LocalDateContract ldp) {
- localDateProvider = ldp;
- }
- private class LocalDateProvider implements LocalDateContract {
- @Override
- public LocalDate now() {
- return LocalDate.now();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement