Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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: void

Explanation / 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 ;
}
  
  
  
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote