Unit Testing for Authentication and Logging

 Overview: 

This homework will assess your ability to design, code, and prepare unit tests for a simple login application. The application should be a standalone desktop application without any Web components. You can code the application in Java, C#, or C++. 

Assignment: Total 100 points:

Using the readings from weeks 1 and 2 as a baseline, develop a graphical user interface that allows a user to log in to a system. The login screen should contain fields for entering a username and password and buttons to submit the information for authentication and a button to clear or reset the fields. 

You can hard-code the password authentication for now- as the purpose of this exercise is Unit testing. The system should log all attempts into a Log.txt file. The log should include the username, the date, the time, and if the login was successful or not. 

Create multiple Unit tests (use Junit if selecting Java, and Visual Studio Unit Test if using C++ or C#). You should design and implement a comprehensive set of Unit tests a minimum of 4 that includes testing of the login form with successful/unsuccessful logging attempts and the logging functionality to the Log.txt file. You should run your unit tests and clearly show the results for each test in your submission. 

Deliverables: You should submit your source files, example log files, and a word (or PDF) document providing a detailed explanation of each of the unit tests along with screen captures showing the results of your unit tests. Screen captures are clearly labeled indicating exactly what the screen capture represents.