The Customer Entity

##### Project Documentation

- Project Information
- Project Reports
  - Surefire Report
  - Javadoc
  - SpotBugs
  - JaCoCo
  - Checkstyle
  - CPD
  - PMD
  - Source Xref
  - Test Source Xref
  - Dependency Check
  - DSM Report
  - Tag List

## Surefire Report

## Summary

[Summary] [Package List] [Test Cases]

Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | ---
160 | 0 | 0 | 0 | 100% | 4.751

Note: failures are anticipated and checked for with assertions while errors are unanticipated.

## Package List

[Summary] [Package List] [Test Cases]

Package | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | ---
org.example.customer.utility | 38 | 0 | 0 | 0 | 100% | 3.661
org.example.customer | 122 | 0 | 0 | 0 | 100% | 1.09

Note: package statistics are not computed recursively, they only sum up all of its testsuites numbers.

### org.example.customer.utility

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| CustomerEntityTest | 8 | 0 | 0 | 0 | 100% | 1.146
| LocationTest | 18 | 0 | 0 | 0 | 100% | 2.484
| PhoneTest | 12 | 0 | 0 | 0 | 100% | 0.031

### org.example.customer

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| ProductTest | 27 | 0 | 0 | 0 | 100% | 0.155
| OrderItemTest | 19 | 0 | 0 | 0 | 100% | 0.051
| OrderTest | 25 | 0 | 0 | 0 | 100% | 0.489
| CustomerTest | 24 | 0 | 0 | 0 | 100% | 0.14
| SupplierTest | 27 | 0 | 0 | 0 | 100% | 0.255

## Test Cases

[Summary] [Package List] [Test Cases]

### ProductTest

| testDefaultProductName | 0.01
| testEmptyPackaging | 0
| testEmptyProductName | 0.016
| testDefaultPackaging | 0.012
| testTooLongProductName | 0.002
| testNullProductName | 0.008
| testToString | 0.008
| testValidPackaging | 0.003
| testSettingDiscontinued | 0.007
| testValidProductName | 0
| testSanitizedProductName | 0.002
| testDefaultUnitPrice | 0.003
| testTooShortPackaging | 0.003
| testSanitizedPackaging | 0
| testTooLongPackaging | 0.003
| testValidSupplierId | 0.007
| testHashCode | 0.002
| testNullPackaging | 0.001
| testInValidUnitPrice | 0.006
| testValidUnitPrice | 0
| testDefaultDiscontinued | 0.001
| testEquals | 0
| testNotEquals | 0.007
| testDefaultSupplierId | 0.006
| testWhitespacePackaging | 0.002
| testCustomerDefaultConstructor | 0.007
| testInValidSupplierId | 0.007

### OrderItemTest

| testInValidQuantity | 0.001
| testToString | 0.019
| testValidOrderId | 0
| testChangedSubTotal | 0.004
| testDefaultOrderId | 0.001
| testDefaultProductId | 0.001
| testDefaultSubTotal | 0.001
| testValidQuantity | 0.001
| testDefaultUnitPrice | 0
| testInValidProductId | 0.002
| testDefaultQuantity | 0.001
| testValidProductId | 0.001
| testHashCode | 0.001
| testInValidUnitPrice | 0.004
| testOrderDefaultConstructor | 0
| testValidUnitPrice | 0
| testEquals | 0
| testNotEquals | 0
| testInValidOrderId | 0.002

### OrderTest

| testDefaultTotalAmount | 0.011
| testValidOrderNumber | 0.002
| testFutureOrderDate | 0.003
| testNullOrderDate | 0.007
| testOrderItemsTotalAmount | 0.387
| testDefaultOrderItems | 0.001
| testSanitizedOrderNumber | 0.029
| OrderNumber | 0.003
| testToString | 0.018
| testInValidTotalAmount | 0
| testYesterdayOrderDate | 0
| testValidTotalAmount | 0.001
| testValidCustomerId | 0
| testTooShortOrderNumber | 0.001
| testDefaultOrderDate | 0.001
| testDefaultCustomerId | 0.004
| testHashCode | 0
| testDefaultOrderNumber | 0
| testOrderDefaultConstructor | 0.001
| testInValidCustomerId | 0.004
| testEquals | 0
| testNotEquals | 0.006
| testTooLongOrderNumber | 0.007
| testNullItems | 0
| testNullOrderNumber | 0

### CustomerEntityTest

| testToString | 0.005
| testCustomerEntityDefaultConstructor | 0
| testDefaultId | 0
| testValidId | 0.001
| testInValidId | 0.008
| testHashCode | 0.003
| testEquals | 0.002
| testNotEquals | 0.001

### CustomerTest

| testTooShortLastName | 0
| testSanitizedLastName | 0
| testNullLocation | 0.012
| testValidLocation | 0
| testSanitizedFirstName | 0
| testToString | 0.001
| testTooLongFirstName | 0.004
| testNullFirstName | 0.003
| testValidPhone | 0.003
| testDefaultLocation | 0.003
| testNullLastName | 0.003
| testValidLastName | 0
| testDefaultLastName | 0
| testDefaultPhone | 0.006
| testTooLongLastName | 0.005
| testEmptyFirstName | 0.008
| testHashCode | 0.009
| testDefaultFirstName | 0.004
| testEquals | 0.009
| testNotEquals | 0.01
| testNullPhone | 0
| testEmptyLastName | 0.009
| testValidFirstName | 0.004
| testCustomerDefaultConstructor | 0.033

### LocationTest

| testTooShortCountry | 1.982
| testNullCity | 0
| testDefaultCity | 0.003
| testToString | 0.002
| testEmptyCity | 0.005
| testValidCity | 0.005
| testTooLongCountry | 0.006
| testTooLongCity | 0.012
| testHashCode | 0.402
| testTooShortCity | 0.004
| testValidCountry | 0.004
| testEquals | 0.004
| testNotEquals | 0.009
| testSanitizedCity | 0.019
| testDefaultCountry | 0.004
| testLocationDefaultConstructor | 0.003
| testEmptyCountry | 0.012
| testNullCountry | 0

### PhoneTest

| testPhoneDefaultConstructor | 0
| testDefaultNumber | 0
| testTooLongNumber | 0
| testToString | 0
| testSanitizedNumber | 0
| testEmptyNumber | 0.001
| testHashCode | 0.007
| testNullNumber | 0.002
| testEquals | 0.01
| testNotEquals | 0.005
| testTooShortNumber | 0
| testValidNumber | 0

### SupplierTest

| testNullLocation | 0.006
| testTooShortContactName | 0.01
| testValidLocation | 0.019
| testSupplierDefaultConstructor | 0.018
| testDefaultCompanyName | 0.001
| testToString | 0.024
| testEmptyCompanyName | 0.012
| testValidPhone | 0.008
| testValidFax | 0.008
| testDefaultContactName | 0.005
| testDefaultLocation | 0.002
| testTooLongCompanyName | 0.009
| testNullCompanyName | 0.002
| testEmptyContactName | 0.008
| testDefaultFax | 0.009
| testTooLongContactName | 0.005
| testNullContactName | 0.009
| testDefaultPhone | 0.009
| testValidCompanyName | 0.001
| testHashCode | 0.008
| testSanitizedCompanyName | 0.009
| testValidContactName | 0.009
| testEquals | 0.017
| testNotEquals | 0.007
| testSanitizedContactName | 0.014
| testNullPhone | 0.001
| testNullFax | 0