Add Unit Tests

Including Logic Unit Tests, Integration and Front-end.