// Path: src/main/java/be/swsb/productivity/chapter2/mud/domain/Ball.java
// public class Ball {
//     private final String id;
//     private final int size;
// 
//     public Ball(String id, int size) {
//         this.id = id;
//         this.size = size;
//     }
// 
//     public String getId() {
//         return id;
//     }
// 
//     public int getSize() {
//         return size;
//     }
// 
//     public void bounce(){
//         System.out.println("bounce");
//     }
// 
//     public void smash(){
//         System.out.println("smash");
//     }
// 
//     public void hit(){
//         System.out.println("hit");
//     }
// 
//     public void dribble(){
//         System.out.println("dribble");
//     }
// 
//     public void kick(){
//         System.out.println("kick");
//     }
// 
//     public void shoot(){
//         System.out.println("shoot");
//     }
// 
//     public void throwww(){
//         System.out.println("throwww");
//     }
// 
//     public void squeeze(){
//         System.out.println("squeeze");
//     }
// 
//     public void roll(){
//         System.out.println("roll");
//     }
// 
//     public void destroy(){
//         System.out.println("destroy");
//     }
// 
//     public void collect(){
//         System.out.println("collect");
//     }
// 
//     public void launch(){
//         System.out.println("launch");
//     }
// 
//     public void drizzle(){
//         System.out.println("drizzle");
//     }
// 
//     public void hoop(){
//         System.out.println("hoop");
//     }
// 
//     public void net(){
//         System.out.println("net");
//     }
// 
//     public void score(){
//         System.out.println("score");
//     }
// 
//     public void supersmash(){
//         System.out.println("supersmash");
//     }
// 
//     public void assemble(){
//         System.out.println("assemble");
//     }
// 
//     public void complete(){
//         System.out.println("complete");
//     }
// 
//     @Override
//     public boolean equals(Object o) {
//         if (this == o) return true;
//         if (o == null || getClass() != o.getClass()) return false;
// 
//         Ball ball = (Ball) o;
// 
//         if (size != ball.size) return false;
//         return id != null ? id.equals(ball.id) : ball.id == null;
// 
//     }
// 
//     @Override
//     public int hashCode() {
//         int result = id != null ? id.hashCode() : 0;
//         result = 31 * result + size;
//         return result;
//     }
// }
// 
// Path: src/main/java/be/swsb/productivity/chapter2/mud/domain/BallRepository.java
// public class BallRepository {
// 
//     public Ball lookupById(String id) {
// //        return new Ball(id, 10);
//         return null;
//     }
// }
// 
// Path: src/main/java/be/swsb/productivity/chapter2/mud/domain/RealBall.java
// public class RealBall extends Ball {
// 
//     public RealBall(String id, int size) {
//         super(id, size);
//     }
// 
//     public void bounce(){
//         System.out.println("bounce");
//     }
// 
//     public void smash(){
//         System.out.println("smash");
//     }
// 
//     public void hit(){
//         System.out.println("hit");
//     }
// 
//     public void dribble(){
//         System.out.println("dribble");
//     }
// 
//     public void kick(){
//         System.out.println("kick");
//     }
// 
//     public void shoot(){
//         System.out.println("shoot");
//     }
// 
//     public void throwww(){
//         System.out.println("throwww");
//     }
// 
//     public void squeeze(){
//         System.out.println("squeeze");
//     }
// 
//     public void roll(){
//         System.out.println("roll");
//     }
// 
//     public void destroy(){
//         System.out.println("destroy");
//     }
// 
//     public void collect(){
//         System.out.println("collect");
//     }
// 
//     public void launch(){
//         System.out.println("launch");
//     }
// 
//     public void drizzle(){
//         System.out.println("drizzle");
//     }
// 
//     public void hoop(){
//         System.out.println("hoop");
//     }
// 
//     public void net(){
//         System.out.println("net");
//     }
// 
//     public void score(){
//         System.out.println("score");
//     }
// 
//     public void supersmash(){
//         System.out.println("supersmash");
//     }
// 
//     public void assemble(){
//         System.out.println("assemble");
//     }
// 
//     public void complete(){
//         System.out.println("complete");
//     }
// 
// }
// 
// Path: src/main/java/be/swsb/productivity/chapter2/mud/service/BallServiceImpl.java
// public class BallServiceImpl implements BallService {
// 
//     private BallRepository ballRepository;
//     private BallTOAssembler ballTOAssembler;
// 
//     public BallServiceImpl(BallRepository ballRepository) {
//         this.ballRepository = ballRepository;
//     }
// 
//     @Override
//     public BallTO findBall(String id) {
//         Ball ball = ballRepository.lookupById(id);
//         return ballTOAssembler.assembleTOFrom(ball);
//     }
// }


import be.swsb.productivity.chapter2.mud.domain.Ball;
import be.swsb.productivity.chapter2.mud.domain.BallRepository;
import be.swsb.productivity.chapter2.mud.domain.RealBall;
import be.swsb.productivity.chapter2.mud.service.BallServiceImpl;
import org.junit.Test;
import java.util.Arrays;
package be.swsb.productivity.chapter2.mud.ui;



public class BallScreenTest {

    @Test
    public void screenCallsStuffToGenerateStackTrace() throws Exception {
        new BallScreen(new BallServiceImpl(new BallRepository())).render();
    }

    @Test
    public void compareTest() throws Exception {
// Path: src/main/java/be/swsb/productivity/chapter2/mud/domain/Ball.java
// public class Ball {
//     private final String id;
//     private final int size;
// 
//     public Ball(String id, int size) {
//         this.id = id;
//         this.size = size;
//     }
// 
//     public String getId() {
//         return id;
//     }
// 
//     public int getSize() {
//         return size;
//     }
// 
//     public void bounce(){
//         System.out.println("bounce");
//     }
// 
//     public void smash(){
//         System.out.println("smash");
//     }
// 
//     public void hit(){
//         System.out.println("hit");
//     }
// 
//     public void dribble(){
//         System.out.println("dribble");
//     }
// 
//     public void kick(){
//         System.out.println("kick");
//     }
// 
//     public void shoot(){
//         System.out.println("shoot");
//     }
// 
//     public void throwww(){
//         System.out.println("throwww");
//     }
// 
//     public void squeeze(){
//         System.out.println("squeeze");
//     }
// 
//     public void roll(){
//         System.out.println("roll");
//     }
// 
//     public void destroy(){
//         System.out.println("destroy");
//     }
// 
//     public void collect(){
//         System.out.println("collect");
//     }
// 
//     public void launch(){
//         System.out.println("launch");
//     }
// 
//     public void drizzle(){
//         System.out.println("drizzle");
//     }
// 
//     public void hoop(){
//         System.out.println("hoop");
//     }
// 
//     public void net(){
//         System.out.println("net");
//     }
// 
//     public void score(){
//         System.out.println("score");
//     }
// 
//     public void supersmash(){
//         System.out.println("supersmash");
//     }
// 
//     public void assemble(){
//         System.out.println("assemble");
//     }
// 
//     public void complete(){
//         System.out.println("complete");
//     }
// 
//     @Override
//     public boolean equals(Object o) {
//         if (this == o) return true;
//         if (o == null || getClass() != o.getClass()) return false;
// 
//         Ball ball = (Ball) o;
// 
//         if (size != ball.size) return false;
//         return id != null ? id.equals(ball.id) : ball.id == null;
// 
//     }
// 
//     @Override
//     public int hashCode() {
//         int result = id != null ? id.hashCode() : 0;
//         result = 31 * result + size;
//         return result;
//     }
// }
// 
// Path: src/main/java/be/swsb/productivity/chapter2/mud/domain/BallRepository.java
// public class BallRepository {
// 
//     public Ball lookupById(String id) {
// //        return new Ball(id, 10);
//         return null;
//     }
// }
// 
// Path: src/main/java/be/swsb/productivity/chapter2/mud/domain/RealBall.java
// public class RealBall extends Ball {
// 
//     public RealBall(String id, int size) {
//         super(id, size);
//     }
// 
//     public void bounce(){
//         System.out.println("bounce");
//     }
// 
//     public void smash(){
//         System.out.println("smash");
//     }
// 
//     public void hit(){
//         System.out.println("hit");
//     }
// 
//     public void dribble(){
//         System.out.println("dribble");
//     }
// 
//     public void kick(){
//         System.out.println("kick");
//     }
// 
//     public void shoot(){
//         System.out.println("shoot");
//     }
// 
//     public void throwww(){
//         System.out.println("throwww");
//     }
// 
//     public void squeeze(){
//         System.out.println("squeeze");
//     }
// 
//     public void roll(){
//         System.out.println("roll");
//     }
// 
//     public void destroy(){
//         System.out.println("destroy");
//     }
// 
//     public void collect(){
//         System.out.println("collect");
//     }
// 
//     public void launch(){
//         System.out.println("launch");
//     }
// 
//     public void drizzle(){
//         System.out.println("drizzle");
//     }
// 
//     public void hoop(){
//         System.out.println("hoop");
//     }
// 
//     public void net(){
//         System.out.println("net");
//     }
// 
//     public void score(){
//         System.out.println("score");
//     }
// 
//     public void supersmash(){
//         System.out.println("supersmash");
//     }
// 
//     public void assemble(){
//         System.out.println("assemble");
//     }
// 
//     public void complete(){
//         System.out.println("complete");
//     }
// 
// }
// 
// Path: src/main/java/be/swsb/productivity/chapter2/mud/service/BallServiceImpl.java
// public class BallServiceImpl implements BallService {
// 
//     private BallRepository ballRepository;
//     private BallTOAssembler ballTOAssembler;
// 
//     public BallServiceImpl(BallRepository ballRepository) {
//         this.ballRepository = ballRepository;
//     }
// 
//     @Override
//     public BallTO findBall(String id) {
//         Ball ball = ballRepository.lookupById(id);
//         return ballTOAssembler.assembleTOFrom(ball);
//     }
// }


// Path: src/test/java/be/swsb/productivity/chapter2/mud/ui/BallScreenTest.java
import be.swsb.productivity.chapter2.mud.domain.Ball;
import be.swsb.productivity.chapter2.mud.domain.BallRepository;
import be.swsb.productivity.chapter2.mud.domain.RealBall;
import be.swsb.productivity.chapter2.mud.service.BallServiceImpl;
import org.junit.Test;
import java.util.Arrays;

package be.swsb.productivity.chapter2.mud.ui;



public class BallScreenTest {

    @Test
    public void screenCallsStuffToGenerateStackTrace() throws Exception {
        new BallScreen(new BallServiceImpl(new BallRepository())).render();
    }

    @Test
    public void compareTest() throws Exception {
        Arrays.asList(new Ball("1", 100), new RealBall("1",100));