示例#1
0
// getNarrativeSection will just print the narrative section text. No need to print the section header since it was specified.
func getNarrativeSection(text string, justification models.Verification, component base.Component, specifiedSections *set.Set) string {
	// Add the component name.
	text = fmt.Sprintf("%s%s\n", text, component.GetName())

	// Use generic []base.Section handler.
	return getSpecificGenericSections(justification.SatisfiesData.GetNarratives(), text, specifiedSections)
}
func (openControl *OpenControlGitBook) getCoveredByVerification(text string, component base.Component, coveredBy common.CoveredBy) string {
	if component != nil {
		verification := component.GetVerifications().Get(coveredBy.VerificationKey)
		text += exportLink(
			fmt.Sprintf("%s - %s", component.GetName(), verification.Name),
			filepath.Join("..", "components", component.GetKey()+".md"),
		)
	}
	return text
}
示例#3
0
// getResponsibleRoleInfo will just print the responsible role if it exists.
func getResponsibleRoleInfo(text string, component base.Component) string {
	// Add the component name.
	text = fmt.Sprintf("%s%s: ", text, component.GetName())
	// Print out the component name and the responsible for that component.
	if component.GetResponsibleRole() != "" {
		return fmt.Sprintf("%s%s\n", text, component.GetResponsibleRole())
	}
	// Else, print warning indicating there was no info.
	return fmt.Sprintf("%s%s\n", text, constants.WarningNoInformationAvailable)
}
func testSet(example base.Component, actual base.Component, t *testing.T) {
	// Check that the key was loaded
	if example.GetKey() != actual.GetKey() {
		t.Errorf("Expected %s, Actual: %s", example.GetKey(), actual.GetKey())
	}
	// Check that the name was loaded
	if example.GetName() != actual.GetName() {
		t.Errorf("Expected %s, Actual: %s", example.GetName(), actual.GetName())
	}
	// Check that the schema version was loaded
	if example.GetVersion().NE(actual.GetVersion()) {
		t.Errorf("Expected %f, Actual: %f", example.GetVersion(), actual.GetVersion())
	}
	// Check that the references were loaded
	if example.GetReferences().Len() != actual.GetReferences().Len() {
		t.Errorf("Expected %d, Actual: %d", example.GetReferences().Len(), actual.GetReferences().Len())
	}
	// Check that the satisfies data was loaded
	if len(example.GetAllSatisfies()) != len(actual.GetAllSatisfies()) {
		t.Errorf("Expected %d, Actual: %d", len(example.GetAllSatisfies()), len(actual.GetAllSatisfies()))
	}
	// Check Narratives and Parameters.
	for idx, _ := range actual.GetAllSatisfies() {
		assert.Equal(t, (example.GetAllSatisfies())[idx].GetNarratives(), (actual.GetAllSatisfies())[idx].GetNarratives())
		assert.Equal(t, (example.GetAllSatisfies())[idx].GetParameters(), (actual.GetAllSatisfies())[idx].GetParameters())
	}
	// Check the responsible role.
	assert.Equal(t, example.GetResponsibleRole(), actual.GetResponsibleRole())
	// Check that the verifications were loaded
	if example.GetVerifications().Len() != actual.GetVerifications().Len() {
		t.Errorf("Expected %d, Actual: %d", example.GetVerifications().Len(), actual.GetVerifications())
	}
}
示例#5
0
// getAllNarrativeSection will print both the section header and the section text for all narrative sections.
func getAllNarrativeSections(text string, justification models.Verification, component base.Component) string {
	// Add the component name.
	text = fmt.Sprintf("%s%s\n", text, component.GetName())
	for _, section := range justification.SatisfiesData.GetNarratives() {
		// If we want to print out all the sections...

		// If section header exists, let's print it. Key could be empty, in that case
		// just print the text for the section.
		if section.GetKey() != "" {
			text = fmt.Sprintf("%s%s:\n", text, section.GetKey())
		}
		text = fmt.Sprintf("%s%s\n", text, section.GetText())

		// Automatically assume foundText is true as long as the length of
		// justification.SatisfiesData.Narrative is > 0, which is implied if we reach here.
		// Also, in case the section in the YAML is explicitly "", we accept empty string here too.
	}
	return text

}