Using eclipse, create the user and the account classes Create a week02 project i
ID: 3743880 • Letter: U
Question
Using eclipse, create the user and the account classes
Create a week02 project in Eclipse
Create a subpackage called app (in Eclipse it will need to be named wekk02.app)
provided:
week02.JUnitAccountTest.java
week02.JUnitUserTest.java
week02JUnitJavadocValidation.java
week02.TestHarness.java
Implement User.java and Account.java
User and Account Classes
package week02;
import static org.junit.Assert.*;
import org.junit.Test;
import test.AbstractJUnitBase;
import week02.app.Account;
import week02.app.User;
public class JUnitAccountTest extends AbstractJUnitBase
{
@Test
public void testAccountEqualsOverride()
{
// simple user creation
Account account1 = new Account();
trace("Testing default constructor generates identical objects");
Account account2 = new Account();
// expect to be same
String msg = String.format("Accounts not equal %s %s", account1, account2);
assertTrue(msg, account1.equals(account2));
trace("Testing setter methods to change one object");
User newUser = new User(1, "Jim","Bo");
account2.setName("Test Acouunt");
account2.setUser(newUser);
msg = String.format("Accounts should not be equal %s %s", account1, account2);
assertFalse(msg, account1.equals(account2));
trace("Testing parameterized constructor with data from existing object");
Account account3 = new Account(2, newUser, "Test Account 2", 1000.0);
String toString = account3.toString();
trace("Testing toString for new account: " + account3.toString());
boolean invalidFormat = toString.contains("Account@");
trace("toString test " + invalidFormat);
assertFalse("Account doesn't properly override toString " + toString, invalidFormat);
}
}
package week02;
import static org.junit.Assert.*;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import test.TestResult;
import test.TestResultDetail;
import test.javadoc.ConstructorTestData;
import test.javadoc.FileTestData2;
import test.javadoc.JUnitJavadocValidationUtility2;
import test.javadoc.MethodTestData2;
/**
* Tests the Javadoc in the source file.
*
* @author Scott
*
*/
public class JUnitJavadocValidation
{
public JUnitJavadocValidation()
{
m_stream = System.out; // Standard out
trace("########### Initializing JUnitJavadocValidation for week02 ###########");
List<FileTestData2> testFiles = new ArrayList<FileTestData2>();
List<MethodTestData2> methods = new ArrayList<MethodTestData2>();
List<ConstructorTestData> constructors = new ArrayList<ConstructorTestData>();
constructors.add(new ConstructorTestData("User", 0, "public"));
constructors.add(new ConstructorTestData("User",3, "public"));
methods.add(new MethodTestData2("equals", "Object", "boolean","public"));
methods.add(new MethodTestData2("getFirstName", "", "String","public"));
methods.add(new MethodTestData2("getLastName", "", "String","public"));
methods.add(new MethodTestData2("getUserId", "", "long","public"));
methods.add(new MethodTestData2("setFirstName", "String", "void","public"));
methods.add(new MethodTestData2("setLastName", "String", "void","public"));
methods.add(new MethodTestData2("setUserId", "long", "void","public"));
methods.add(new MethodTestData2("toString", "", "String","public"));
testFiles.add(new FileTestData2("week02.app", "User.java", methods,constructors));
List<MethodTestData2> accountMethods = new ArrayList<MethodTestData2>();
List<ConstructorTestData> accountConstructors = new ArrayList<ConstructorTestData>();
accountConstructors.add(new ConstructorTestData("Account", 0, "public"));
accountConstructors.add(new ConstructorTestData("Account",4, "public"));
accountMethods.add(new MethodTestData2("equals", "Object", "boolean","public"));
accountMethods.add(new MethodTestData2("getAccountId", "", "long","public"));
accountMethods.add(new MethodTestData2("getBalance", "", "double","public"));
accountMethods.add(new MethodTestData2("getName", "", "String","public"));
accountMethods.add(new MethodTestData2("getUser", "", "User","public"));
accountMethods.add(new MethodTestData2("getUserId", "", "long","public"));
accountMethods.add(new MethodTestData2("setName", "String", "void","public"));
accountMethods.add(new MethodTestData2("setUser", "User", "void","public"));
accountMethods.add(new MethodTestData2("toString", "", "String","public"));
testFiles.add(new FileTestData2("week02.app", "Account.java", accountMethods,accountConstructors));
m_validator = new JUnitJavadocValidationUtility2("Week02 Javadoc Test",
testFiles);
m_validator.suppressParserTrace(true);
}
@Test
public void testJavadoc()
{
trace("** Validating Javadoc **");
// Update these values for each assignment
// m_packageName = "week02";
TestResult result = m_validator.runTest();
StringBuilder details = new StringBuilder();
if(!result.passed())
{
List<TestResultDetail> detailList = result.getTestResultDetails();
for(TestResultDetail detail : detailList)
{
trace(detail.testDetails());
details.append(detail.testDetails());
details.append(CRLF);
}
}
trace(String.format("** Test result: %s **", result.passed() ? "Passed" : "Failed"));
assertTrue(details.toString(), result.passed());
}
/**
* Trace the msg to a PrintStream Provides the method for tests to report
* status
*
* @param msg
*/
private void trace(String msg)
{
m_stream.println(msg);
}
private JUnitJavadocValidationUtility2 m_validator;
protected PrintStream m_stream;
private static String CRLF = System.getProperty("line.separator");
}
package week02;
import static org.junit.Assert.*;
//import java.io.PrintStream;
import org.junit.Test;
import test.AbstractJUnitBase;
import week02.app.User;
public class JUnitUserTest extends AbstractJUnitBase
{
/**
* Constructor
*/
public JUnitUserTest()
{
m_stream = System.out; // Standard out
trace("########### Initializing JUnitUserTest for week02 ###########");
}
@Test
public void testUserEqualsOverride()
{
// simple user creation
User user = new User();
trace("Testing default constructor generates identical objects");
User user2 = new User();
// expect to be same
String msg = String.format("Users not equal %s %s", user, user2);
assertTrue(msg, user.equals(user2));
trace("Testing setter methods to change one object");
user2.setFirstName("Jim");
user2.setLastName("Bo");
user2.setUserId(1);
msg = String.format("Users should not be equal %s %s", user, user2);
assertFalse(msg, user.equals(user2));
trace("Testing parameterized constructor with data from existing object");
User user3 = new User(user2.getUserId(), user2.getFirstName(), user2.getLastName());
trace(user3.toString());
msg = String.format("Users should equal %s %s", user, user2);
assertTrue(msg, user3.equals(user2));
}
}
package week02;
import test.AbstractTestHarness;
/**
* File: TestHarness.java
*/
class TestHarness extends AbstractTestHarness
{
public static void main(String[] args)
{
new TestHarness().runTests();
}
/**
* Implements the base class abstract method
*/
protected void runTests()
{
try
{
boolean javadocTest = executeTest(JUnitJavadocValidation.class);
boolean userTest = executeTest(JUnitUserTest.class);
boolean accountTest = executeTest(JUnitAccountTest.class);
boolean result = javadocTest && userTest && accountTest;
trace(result ? "PASSED" : "FAILED");
}
catch(Exception ex)
{
trace(ex.getMessage());
}
}
}
class app Name: app Package: app Version: 1.0 Author: Scott LaChance Account m firstName: String m lastName: String m accountName: String m balance: double + equals(Object]: boolean + getLastName(): String + setFirstName(String): void -m usergetFirstName):String + Accountlong, User, String, double) + equals(Object) boolean + setLastName(String): void + getName(): String + setName(String): void + set Userllong, String, String) + User(User: voidExplanation / Answer
Account.java
package week02.app;
import java.util.Random;
/**
* Class holds the account details
* @author
*/
public class Account {
private String m_accountName;
private long m_accountId;
private double m_balance;
private User m_user;
/**
* default constructor
* Initializes every accountid with a random number
*/
Account(){
Random rand = new Random(System.currentTimeMillis()); //seed for random number generation is current time
m_accountId= (long) (rand.nextLong()); //generates a random accountid which ensures no 2 account is created identical
m_accountName="";
m_balance=0;
m_user=null;
}
/**
* Parameterized constructor
* @param id accountid
* @param usr user of account.Holds user object
* @param name account name
* @param bal balance in the account
*/
Account(long id,User usr,String name,double bal)
{
m_accountId=id;
m_user=usr;
m_accountName=name;
m_balance=bal;
}
/**
* Overrides object.equals() to compare two Account objects
* @param o object to compare with
* @return true if equal ,false if not
*/
@Override
public boolean equals(Object o) {
/* Check if o is an instance of Account or not*/
if (!(o instanceof Account)) {
return false;
}
// typecast o to Account so that we can compare data members
Account acc = (Account) o;
if(m_accountName.equals(acc.m_accountName))
if(m_accountId==acc.m_accountId)
if(m_balance==acc.m_balance)
return m_user.equals(acc.m_user);
else
return false;
else
return false;
else
return false;
}
/**
* returns account id
* @return account id
*/
public long getAccountId()
{
return m_accountId;
}
/**
* returns balance
* @return balance
*/
public double getBalance()
{
return m_balance;
}
/**
* returns account name
* @return account name
*/
public String getName()
{
return m_accountName;
}
/**
* returns user object
* @return user object
*/
public User getUser()
{
return m_user;
}
/**
* returns user id associated with user
* @return user id associated with user
*/
public long getUserId()
{
return m_user.getUserId();
}
/**
* Sets accountname
* @param name account name
*/
public void setName(String name){
m_accountName=name;
}
/**
* Sets user
* @param usr user object
*/
public void setUser(User usr)
{
m_user=usr;
}
/**
* generates a printable form of account
* @return account description with all parameters
*/
@Override
public String toString() {
return " Acount Name=" + m_accountName
+ " Account Id=" + m_accountId
+ " Balance=" + m_balance
+ " User=" + m_user.getUserId(); //returns userid for user
}
}
User.java
package week02.app;
import java.util.Random;
/**
* This class represents user
* @author
*/
public class User {
private String m_firstName;
private String m_lastName;
private long m_userId;
/**
* default constructor
* Initializes every userid with a random number
*/
public User() {
m_firstName="";
m_lastName="";
Random rand = new Random(System.currentTimeMillis()); //seed for random number generation is current time
m_userId= (long) (rand.nextLong()); //generates a random userid which ensures no 2 user is created identical
}
/**
* parameterized constructor
* @param id user id
* @param fName first name of user
* @param lName last name of user
*/
public User(long id,String fName, String lName) {
m_firstName = fName;
m_lastName = lName;
m_userId = id;
}
/**
* Overrides object.equals() to compare two user objects
* @param o object to compare with
* @return true if equal ,false if not
*/
@Override
public boolean equals(Object o) {
// Check if o is an instance of User or not
if (!(o instanceof User)) {
return false;
}
// typecast o to User so that we can compare data members
User usr = (User) o;
if(m_firstName.equals(usr.m_firstName))
if(m_lastName.equals(usr.m_lastName))
return m_userId==usr.m_userId;
else
return false;
else
return false;
}
/**
* returns firstname
* @return firstname
*/
public String getFirstName()
{
return m_firstName;
}
/**
* returns last name
* @return last name
*/
public String getLastName()
{
return m_lastName;
}
/**
* returns user id
* @return user id
*/
public long getUserId()
{
return m_userId;
}
/**
* sets the name as first name
* @param name sets the name as first name
*/
public void setFirstName(String name)
{
m_firstName=name;
}
/**
* sets the name as last name
* @param name sets the name as last name
*/
public void setLastName(String name)
{
m_lastName=name;
}
/**
* sets the object as userid
* @param id sets the object as userid
*/
public void setUserId(long id)
{
m_userId=id;
}
/**
* generates a printable form of user
* @return user details with all parameters
*/
@Override
public String toString() {
return " First Name=" + m_firstName
+ " Last Name=" + m_lastName
+ " UserId=" + m_userId ;
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.