public Task <List <FeatureEvidence> > Execute() { return(projectRunnerTask.ContinueWith(task => { BadInputCheckEvidence.Feature = Feature.BadInputCheck; BadInputCheckEvidence.HelperMessage = messages.BadInputCheck; if (!task.Result.All(evidence => evidence.Passed)) { BadInputCheckEvidence.SetInconclusive(new SimpleEvidenceBuilder("Project failed to run, unable to perform check.")); return new List <FeatureEvidence> { BadInputCheckEvidence }; } var port = portTask.Result; if (string.IsNullOrEmpty(port)) { BadInputCheckEvidence.SetInconclusive(new SimpleEvidenceBuilder(messages.BadPort)); return new List <FeatureEvidence> { BadInputCheckEvidence }; } try { var fetcher = new HTMLFetcher(port); var htmlCode = fetcher.GetHTMLCodeAsString(); actions = BackEndHelperFunctions.GetListOfActions(htmlCode, "value=\"", "\""); badInputs = new Dictionary <string, string> { { "Empty input", " " }, { "Blank lines at the start", "\n10" }, { "Blank lines at the middle", "10 \n\n 10" }, { "Blank lines at the end", "10 \n\n" }, { "Not numbers", "Y..@" } }; BadInputBoolResults = new List <bool>(); var badInputResults = fetcher.GetBadInputs(badInputs, actions[0]); if (BadInputsAreFixed(badInputResults)) { BadInputCheckEvidence.SetPassed(new SimpleEvidenceBuilder(badInputResultsOutput.ToString())); } else { BadInputCheckEvidence.SetFailed(new SimpleEvidenceBuilder(badInputResultsOutput.ToString())); } BadInputCheckEvidence.FeatureRating = GetBadInputCheckRating(); } catch (Exception) { BadInputCheckEvidence.SetInconclusive(new SimpleEvidenceBuilder(badInputResultsOutput.ToString())); } return new List <FeatureEvidence> { BadInputCheckEvidence }; }, TaskContinuationOptions.OnlyOnRanToCompletion)); }
public Task <List <FeatureEvidence> > Execute() { return(projectRunnerTask.ContinueWith(task => { UnitConverterCheckEvidence.Feature = Feature.UnitConverterCheck; UnitConverterCheckEvidence.HelperMessage = messages.UnitConverterCheck; if (!task.Result.All(evidence => evidence.Passed)) { UnitConverterCheckEvidence.SetInconclusive(new SimpleEvidenceBuilder("Project failed to run, unable to perform check.")); return new List <FeatureEvidence> { UnitConverterCheckEvidence }; } var port = this.portTask.Result; if (string.IsNullOrEmpty(port)) { UnitConverterCheckEvidence.SetInconclusive(new SimpleEvidenceBuilder(messages.BadPort)); return new List <FeatureEvidence> { UnitConverterCheckEvidence }; } try { var fetcher = new HTMLFetcher(port); var htmlCode = fetcher.GetHTMLCodeAsString(); InitializeDataStructures(htmlCode); actual = fetcher.GetActualValues(texts, actions); if (actions.Count == 0) { UnitConverterCheckEvidence.SetInconclusive(new SimpleEvidenceBuilder("Couldn't execute the unit conversion because of UI changes")); } else { if (OutputsAreEqual()) { UnitConverterCheckEvidence.SetPassed(new SimpleEvidenceBuilder(unitConverterResultsOutput.ToString())); } else { UnitConverterCheckEvidence.SetFailed(new SimpleEvidenceBuilder(unitConverterResultsOutput.ToString())); } } UnitConverterCheckEvidence.FeatureRating = GetUnitConverterCheckRating(); } catch (Exception) { UnitConverterCheckEvidence.SetInconclusive(new SimpleEvidenceBuilder("Could not check this feature")); } return new List <FeatureEvidence> { UnitConverterCheckEvidence }; }, TaskContinuationOptions.OnlyOnRanToCompletion)); }