2016-11-15 2 views
0

У меня есть основной класс под названием User реализован следующим образомдва метода конструктора класса

package edu.uoc.dpoo; 
import java.util.ArrayList; 
import java.util.List; 

public class User { 

    private String username; 
    private String password; 
    private String fullName; 

    private Platform platform; 

    private List<Message> inBox; 
    private List<Message> outBox; 


    public User(String username, String password, String fullName) { 

    this.username = username; 
    this.password = password; 
    this.fullName = fullName; 

    inBox = new ArrayList<Message>(); 
    outBox = new ArrayList<Message>(); 
    } 

    public User() { 
     username=""; 
     password=""; 
     fullName=""; 
    } 




public String getUserName() { 
    return username; 
} 

public String getPassword() { 
    return password; 
} 

public String getFullName() { 
    return fullName; 
} 

public void setUserName(String username) { 
    this.username = username; 
} 

public void setPassword(String password) { 
    this.password = password; 
} 

public void setFullName(String fullname) { 
    this.fullName = fullname; 
} 


public boolean checkPassword(String password){ 

    if (password.equals(this.password)){ 

     return true; 
    }else 
    { 
      return false; 
      }   
} 

public List<Message> getMessages() { 
    return null; 
} 
public Organizer asOrganizer(){ 
     Organizer ObjetoO = new Organizer(username,password,fullName); 
    return ObjetoO; 
} 



public Participant asParticipant(){ 
    Participant ObjetoP = new Participant(username,password,fullName); 
    return ObjetoP; 

} 



public Message sendMessage(String to,String Subject,String message){ 
    return null; 
} 

public String toString() { 
    return null; 
} 

@Override 
public boolean equals (Object o) { 
    boolean prueba = false; 

    if ((o != null) && (o instanceof User)) { 
     User p = (User) o; 
     if (this.username == null && this.password == null && this.fullName == null) { 
      prueba = (p.username == null); 
          prueba = (p.password == null); 
          prueba = (p.fullName == null); 
     } 
     else { 
      prueba = this.username.equals(p.username); 
          prueba = this.password.equals(p.password); 
          prueba = this.fullName.equals(p.fullName); 
     } 
    } 

    return prueba; 
} 

    public List<Competition> myCompetitions(){ 
     return null; 
    } 


User(User u1) { 
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 
} 


} 

И два класса, которые наследуют от пользователя, которые Организатор и Участник осуществляется следующим образом

Организатор

package edu.uoc.dpoo; 

import java.util.ArrayList; 
import java.util.List; 

public class Organizer extends User { 

    private List<Competition> competitions; 



    public Organizer(String username, String password, String fullName) { 
     super(username, password, fullName); 
       competitions = new ArrayList<Competition>(); 

    } 

    public boolean removeSubmission(Submission submission){ 
     return true; 

    } 

    public boolean sendMessage(Competition competition, String subject, String message){ 
     return true; 

    } 

    public Competition newCompetition(String tittle,float target){ 
     return null; 

    } 
    public void closeCompetition(Competition competition){ 

    } 

} 


    Participant 

    package edu.uoc.dpoo; 

    import java.util.ArrayList; 
    import java.util.List; 

    public class Participant extends User { 

    private List<Competition> competitions; 
     private List<Submission> submission; 



    public Participant(String username, String password, String fullName) { 
     super(username, password, fullName); 
       competitions = new ArrayList<Competition>(); 
       submission = new ArrayList<Submission>(); 
    } 

    public Submission submitPrediction(Competition competition, float prediction){ 
     return null; 
    } 
    public List<Submission> getSubmissions(){ 
     return null; 
    } 

    void asParticipant(Submission aThis) { 
     throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 
    } 

} 

Меня попросили реализовать методы asOrganizer и asParticipant класса User. Эти методы должны создавать объект определенного класса и инициализировать родительский класс данными объекта User. Для выполнения этой задачи вам предлагается реализовать конструктор копирования класса User.

Я создаю объекты в этих двух методов, которые просят меня, но я не должен делать что-то хорошо в конструкторе, потому что JUnit не удается мне

добавляю JUnit, который не мне

@Test 
    public void userCopyConstructor() {   
    Platform platform = new Platform(); 
    User u1=platform.registerUser(username1, password1, fullName1); 

    // User is not NULL 
    assertNotNull(u1); 

    // Get a participant object from user object 
    User u2 = new User(u1);   
    assertNotNull(u2); 
    assertEquals(u1, u2);   
} 

Моя проблема возникает в этой точке

// Get a participant object from user object 
    User u2 = new User(u1);   
    assertNotNull(u2); 
    assertEquals(u1, u2);  
+0

«потому что junit не справляется со мной» - Можете ли вы предоставить более подробную информацию? – bradimus

+1

какая именно проблема? Как этот код связан с этим? пожалуйста, предоставьте [mcve] – ItamarG3

+0

, это похоже на большое нарушение принципа открытого/закрытого ... в любое время, когда вы захотите добавить «другую версию» пользователя, вам нужно будет создать класс и изменить пользователя «asNewThing» impl? – Kritner

ответ

0
public User(User Prueba){ 
this(Prueba.getUserName(),Prueba.getPassword(),Prueba.getFullName()); 

} 

Благодаря ответам они мне дали. Без вас было бы труднее

Смежные вопросы