//LAYER_Class_NameOfTheMethod_TestedScenario_ExpectedBehaviour public void MODEL_Submission_FullConstructor_CreateSubmission_SubmissionIsCreated() { //arrange DateTimeOffset initDTO = DateTimeOffset.Now; int submissionId = 7; DateTimeOffset dateSubmitted = initDTO; bool isAwarded = false; User user = new User(); Upload upload = new Upload(); Job job = new Job(); //act Submission submission_m1 = new Submission( submissionId, dateSubmitted, isAwarded, user, upload, job ); //assert Assert.IsNotNull(submission_m1, "submission object is null"); Assert.AreEqual(7, submission_m1.submissionId, "wrong submissionId"); Assert.AreEqual(initDTO, submission_m1.dateSubmitted, "wrong dateSubmitted"); Assert.IsTrue(!submission_m1.isAwarded, "wrong isAwarded"); Assert.IsNotNull(submission_m1.user, "submission.user is null"); Assert.IsNotNull(submission_m1.upload, "submission.upload is null"); Assert.IsNotNull(submission_m1.job, "submission.job is null"); }
//dbReader private static Submission createSubmission(IDataReader dbReader) { Submission submission = new Submission(); submission.submissionId = Convert.ToInt32(dbReader["SubmissionId"]); submission.dateSubmitted = (DateTimeOffset)dbReader["DateSubmitted"]; submission.isAwarded = Convert.ToBoolean(dbReader["IsAwarded"]); submission.user = new User(); submission.user.userId = Convert.ToInt32(dbReader["UserId"]); submission.upload = new Upload(); submission.upload.uploadId = Convert.ToInt32(dbReader["UploadId"]); submission.job = new Job(); submission.job.jobId = Convert.ToInt32(dbReader["JobId"]); return submission; }
public ReturnedObject insertSubmissionFile(string publicKey, string privateKey, Submission submission) { ReturnedObject returnedObject = new ReturnedObject(); if (Security.authorizeClient(publicKey, privateKey)) { CtrSubmission _CtrSubmission = new CtrSubmission(); returnedObject.code = _CtrSubmission.insertSubmissionFile(submission); } else { returnedObject.code = (int)CODE.CLIENT_NOT_AUTHORIZED; } return returnedObject; }
//LAYER_Class_NameOfTheMethod_TestedScenario_ExpectedBehaviour public void MODEL_Submission_SetAndGetMethods_ModifyAllFieldsValues_AllValuesAreModified() { //arrange DateTimeOffset initDTO = DateTimeOffset.Now; int submissionId = 7; DateTimeOffset dateSubmitted = initDTO; bool isAwarded = false; User user = new User(); Upload upload = new Upload(); Job job = new Job(); Submission submission_m2 = new Submission( submissionId, dateSubmitted, isAwarded, user, upload, job ); //act User user2 = new User(); Upload upload2 = new Upload(); Job job2 = new Job(); submission_m2.submissionId = 9; submission_m2.dateSubmitted = initDTO.AddMinutes(32); submission_m2.isAwarded = true; submission_m2.user = user2; submission_m2.upload = upload2; submission_m2.job = job2; ; //assert Assert.IsNotNull(submission_m2, "submission object is null"); Assert.AreEqual(9, submission_m2.submissionId, "subbmissionId not changed"); Assert.AreEqual(initDTO.AddMinutes(32), submission_m2.dateSubmitted, "dateSubmitted not changed"); Assert.IsTrue(submission_m2.isAwarded, "isAwarded not changed"); Assert.AreNotEqual(user, submission_m2.user, "submission.user not changed"); Assert.AreNotEqual(upload, submission_m2.upload, "submission.upload not canged"); Assert.AreNotEqual(job, submission_m2.job, "submission.job not changed"); }
//returns [int >= TRANSLATO_DATABASE_SEED] if successful //returns [int < TRANSLATO_DATABASE_SEED] if not public int insertSubmission(Submission submission) { int returnCode = (int)CODE.ZERO; string sqlQuery = "INSERT INTO Submissions OUTPUT INSERTED.SubmissionId VALUES (" + "@DateSubmitted, " + "@IsAwarded, " + "@UserId, " + "@UploadId, " + "@JobId" + ")"; using (SqlConnection sqlConnection = new SqlConnection(AccessTranslatoDb.sqlConnectionString)) { try { regenSqlParams(); using (SqlCommand sqlCommand = new SqlCommand(sqlQuery, sqlConnection)) { param_dateSubmitted.Value = submission.dateSubmitted; sqlCommand.Parameters.Add(param_dateSubmitted); param_isAwarded.Value = submission.isAwarded; sqlCommand.Parameters.Add(param_isAwarded); param_userId.Value = submission.user.userId; sqlCommand.Parameters.Add(param_userId); param_uploadId.Value = submission.upload.uploadId; sqlCommand.Parameters.Add(param_uploadId); param_jobId.Value = submission.job.jobId; sqlCommand.Parameters.Add(param_jobId); sqlCommand.Connection.Open(); returnCode = (int)sqlCommand.ExecuteScalar(); sqlCommand.Connection.Close(); sqlCommand.Parameters.Clear(); } } catch (InvalidOperationException ioEx) { returnCode = (int)CODE.DBSUBMISSIONS_INSERTSUBMISSION_EXCEPTION; Log.Add(ioEx.ToString()); } catch (SqlException sqlEx) { returnCode = (int)CODE.DBSUBMISSIONS_INSERTSUBMISSION_EXCEPTION; Log.Add(sqlEx.ToString()); } catch (ArgumentException argEx) { returnCode = (int)CODE.DBSUBMISSIONS_INSERTSUBMISSION_EXCEPTION; Log.Add(argEx.ToString()); } catch (Exception ex) { returnCode = (int)CODE.DBSUBMISSIONS_INSERTSUBMISSION_EXCEPTION; Log.Add(ex.ToString()); } return returnCode; } }
//returns "MODEL.Submission" object if successful //returns "null" if not public Submission findSubmissionByUploadId(int uploadId) { string sqlQuery = "SELECT * FROM Submissions WHERE " + "UploadId = @UploadId"; using (SqlConnection sqlConnection = new SqlConnection(AccessTranslatoDb.sqlConnectionString)) { Submission submission = new Submission(); IDataReader dbReader; try { regenSqlParams(); using (SqlCommand sqlCommand = new SqlCommand(sqlQuery, sqlConnection)) { param_uploadId.Value = uploadId; sqlCommand.Parameters.Add(param_uploadId); sqlCommand.Connection.Open(); dbReader = sqlCommand.ExecuteReader(); if (dbReader.Read()) { submission = createSubmission(dbReader); } else { submission = null; } sqlCommand.Connection.Close(); sqlCommand.Parameters.Clear(); } } catch (InvalidOperationException ioEx) { submission = null; Log.Add(ioEx.ToString()); } catch (SqlException sqlEx) { submission = null; Log.Add(sqlEx.ToString()); } catch (ArgumentException argEx) { submission = null; Log.Add(argEx.ToString()); } catch (Exception ex) { submission = null; Log.Add(ex.ToString()); } return submission; } }
//returns [int >= TRANSLATO_DATABASE_SEED] if successful //returns [int < TRANSLATO_DATABASE_SEED] if not private int insertSubmission(Submission submission, bool isText, bool isFile) { if ((isText && isFile) || (!isText && !isFile)) return (int)CODE.CTRSUBMISSION_INSERTSUBMISSION_ISBOTHORNEITHER;//means the functions was called wrong int returnCode = (int)CODE.ZERO; int result = (int)CODE.MINUS_ONE; //validate dateSubmitted if ( result == (int)CODE.ZERO || returnCode != (int)CODE.ZERO //nothing to validate here at this point ) { if (isText) returnCode = (int)CODE.CTRSUBMISSION_INSERTSUBMISSIONTEXT_INVALID_DATESUBMITTED; result = (int)CODE.ZERO; if (isFile) returnCode = (int)CODE.CTRSUBMISSION_INSERTSUBMISSIONFILE_INVALID_DATESUBMITTED; result = (int)CODE.ZERO; } //validate isAwarded if ( result == (int)CODE.ZERO || returnCode != (int)CODE.ZERO //nothing to validate here at this point ) { if (isText) returnCode = (int)CODE.CTRSUBMISSION_INSERTSUBMISSIONTEXT_INVALID_ISAWARDED; result = (int)CODE.ZERO; if (isFile) returnCode = (int)CODE.CTRSUBMISSION_INSERTSUBMISSIONFILE_INVALID_ISAWARDED; result = (int)CODE.ZERO; } //validate user //has to exist CtrUser _CtrUser = new CtrUser(); if ( result == (int)CODE.ZERO || returnCode != (int)CODE.ZERO || submission.user.Equals(null) || _CtrUser.findUserByUserId(submission.user.userId) == null ) { if (isText) returnCode = (int)CODE.CTRSUBMISSION_INSERTSUBMISSIONTEXT_INVALID_USER; result = (int)CODE.ZERO; if (isFile) returnCode = (int)CODE.CTRSUBMISSION_INSERTSUBMISSIONFILE_INVALID_USER; result = (int)CODE.ZERO; } //validate upload //does not have to exist; will be created if ( result == (int)CODE.ZERO || returnCode != (int)CODE.ZERO || submission.upload.Equals(null) ) { if (isText) returnCode = (int)CODE.CTRSUBMISSION_INSERTSUBMISSIONTEXT_INVALID_UPLOAD; result = (int)CODE.ZERO; if (isFile) returnCode = (int)CODE.CTRSUBMISSION_INSERTSUBMISSIONFILE_INVALID_UPLOAD; result = (int)CODE.ZERO; } //validate job //has to exist CtrJob _CtrJob = new CtrJob(); if ( result == (int)CODE.ZERO || returnCode != (int)CODE.ZERO || submission.job.Equals(null) || _CtrJob.findJobByJobId(submission.job.jobId) == null ) { if (isText) returnCode = (int)CODE.CTRSUBMISSION_INSERTSUBMISSIONTEXT_INVALID_JOB; result = (int)CODE.ZERO; if (isFile) returnCode = (int)CODE.CTRSUBMISSION_INSERTSUBMISSIONFILE_INVALID_JOB; result = (int)CODE.ZERO; } if (returnCode == (int)CODE.ZERO && result != (int)CODE.ZERO)//safe to proceed { submission.dateSubmitted = DateTimeOffset.Now; submission.isAwarded = false; submission.user = submission.user; submission.upload = submission.upload; submission.job = submission.job; CtrUpload _CtrUpload = new CtrUpload(); ISubmissions _DbSubmissions = new DbSubmissions(); try { using (var trScope = TransactionScopeBuilder.CreateSerializable()) { if (isText) returnCode = _CtrUpload.insertUploadText(submission.upload); if (isFile) returnCode = _CtrUpload.insertUploadFile(submission.upload); if (returnCode >= (int)CODE.TRANSLATO_DATABASE_SEED)//means upload was inserted successfully { submission.upload.uploadId = returnCode; returnCode = _DbSubmissions.insertSubmission(submission); } else {//means upload failed to be inserted trScope.Dispose(); } trScope.Complete(); } } catch (TransactionAbortedException taEx) { if (isText) returnCode = (int)CODE.CTRSUBMISSION_INSERTSUBMISSIONTEXT_EXCEPTION; if (isFile) returnCode = (int)CODE.CTRSUBMISSION_INSERTSUBMISSIONFILE_EXCEPTION; Log.Add(taEx.ToString()); } catch (ApplicationException aEx) { if (isText) returnCode = (int)CODE.CTRSUBMISSION_INSERTSUBMISSIONTEXT_EXCEPTION; if (isFile) returnCode = (int)CODE.CTRSUBMISSION_INSERTSUBMISSIONFILE_EXCEPTION; Log.Add(aEx.ToString()); } catch (Exception ex) { if (isText) returnCode = (int)CODE.CTRSUBMISSION_INSERTSUBMISSIONTEXT_EXCEPTION; if (isFile) returnCode = (int)CODE.CTRSUBMISSION_INSERTSUBMISSIONFILE_EXCEPTION; Log.Add(ex.ToString()); } } else { } return returnCode; }
//returns [int >= TRANSLATO_DATABASE_SEED] if successful //returns [int < TRANSLATO_DATABASE_SEED] if not internal int insertSubmissionFile(Submission submission) { return insertSubmission(submission, false, true); }
//returns [int >= TRANSLATO_DATABASE_SEED] if successful //returns [int < TRANSLATO_DATABASE_SEED] if not internal int insertSubmissionText(Submission submission) { return insertSubmission(submission, true, false); }