Skip to content

Commit

Permalink
ArchUnit tests for SecHub
Browse files Browse the repository at this point in the history
- added archUnit tests for sechub project
- fixed rule violations in existing code
  • Loading branch information
lorriborri authored Aug 7, 2024
1 parent 173dc36 commit 440eb78
Show file tree
Hide file tree
Showing 65 changed files with 676 additions and 435 deletions.
17 changes: 11 additions & 6 deletions gradle/libraries.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -88,13 +88,16 @@ ext {
cycloneDX_core: "8.0.0",
cyclonedx_gradle_plugin: "1.7.4",

/* Prepare wrapper */
jgit_core: "6.9.0.202403050737-r",

/* Prepare wrapper */
jgit_core: "6.9.0.202403050737-r",

/* ArchUnit */
arch_unit: "1.3.0",

/* encryption */
// https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk18on
bouncy_castle_bcprov_jdk8: "1.78.1"

]

library = [
Expand Down Expand Up @@ -192,9 +195,11 @@ ext {
cycloneDX_core: "org.cyclonedx:cyclonedx-core-java:${libraryVersion.cycloneDX_core}",

jgit_core: "org.eclipse.jgit:org.eclipse.jgit:${libraryVersion.jgit_core}",


arch_unit: "com.tngtech.archunit:archunit-junit5:${libraryVersion.arch_unit}",

bouncy_castle_bcprov_jdk8: "org.bouncycastle:bcprov-jdk18on:${libraryVersion.bouncy_castle_bcprov_jdk8}"

]


Expand Down
13 changes: 12 additions & 1 deletion gradle/projects.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,11 @@ projectType = [
to have dependency injection and access to some other spring boot parts */
project(':sechub-wrapper-checkmarx'),
project(':sechub-wrapper-prepare'),

project(':sechub-wrapper-secret-validator'),

/* archUnit */
project(':sechub-archunit-test')
],

/* adapter projects - have simple spring dependencies, but know only sechub-adapter as base */
Expand Down Expand Up @@ -129,6 +132,10 @@ projectType = [
project(':sechub-doc'),
],

archUnitProjects: [
// will be filled automatically in code below
],

noSpotless : [
project('sechub-examples:example-sechub-api-java'),
project('sechub-openapi-java-client')
Expand All @@ -153,3 +160,7 @@ projectType.javaProjects.addAll(projectType.springBootProjects)
/* dynamically add all java projects as eclipse projects:*/
projectType.eclipseProjects.addAll(projectType.javaProjects)
projectType.eclipseProjects.addAll(projectType.goProjects)

/* archUnit */
projectType.archUnitProjects.addAll(projectType.javaProjects)
projectType.archUnitProjects.remove(project(':sechub-archunit-test'))
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ public ResilienceProposal consultFor(ResilienceContext context) {

if (rootCause instanceof HttpClientErrorException) {
HttpClientErrorException hce = (HttpClientErrorException) rootCause;
int statusCode = hce.getRawStatusCode();
int statusCode = hce.getStatusCode().value();
if (statusCode == 400) {
/*
* BAD request - this can happen for same project scans put to queue because
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ public void ensureProjectExists(CheckmarxContext context) throws AdapterExceptio
context.setNewProject(false);
return;
} catch (HttpStatusCodeException e) {
if (e.getRawStatusCode() != 404) {
if (e.getStatusCode().value() != 404) {
/* only 404 - not found is accepted */
throw context.asAdapterException(
CheckmarxAdapter.CHECKMARX_MESSAGE_PREFIX + "HTTP status=" + e.getStatusCode() + " (expected was only 404 for non existing project)",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
package com.mercedesbenz.sechub.domain.scan.product.checkmarx;
package com.mercedesbenz.sechub.adapter.checkmarx;

import static org.junit.Assert.*;
import static org.mockito.ArgumentMatchers.*;
Expand All @@ -10,9 +10,6 @@

import com.mercedesbenz.sechub.adapter.AdapterMetaData;
import com.mercedesbenz.sechub.adapter.AdapterMetaDataCallback;
import com.mercedesbenz.sechub.adapter.checkmarx.CheckmarxMetaDataID;
import com.mercedesbenz.sechub.adapter.checkmarx.CheckmarxResilienceCallback;
import com.mercedesbenz.sechub.adapter.checkmarx.CheckmarxResilienceConsultant;
import com.mercedesbenz.sechub.commons.core.resilience.ResilienceContext;

public class CheckmarxResilienceCallbackTest {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
package com.mercedesbenz.sechub.adapter;
package com.mercedesbenz.sechub.adapter.support;

import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
Expand All @@ -10,7 +10,7 @@
import org.junit.Before;
import org.junit.Test;

import com.mercedesbenz.sechub.adapter.support.APIURLSupport;
import com.mercedesbenz.sechub.adapter.AdapterConfig;

public class APIURLSupportTest {
private APIURLSupport supportToTest;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
package com.mercedesbenz.sechub.adapter;
package com.mercedesbenz.sechub.adapter.support;

import static org.junit.Assert.*;
import static org.mockito.ArgumentMatchers.*;
Expand All @@ -17,7 +17,10 @@
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.github.tomakehurst.wiremock.client.WireMock;
import com.github.tomakehurst.wiremock.matching.StringValuePattern;
import com.mercedesbenz.sechub.adapter.support.JSONAdapterSupport;
import com.mercedesbenz.sechub.adapter.Adapter;
import com.mercedesbenz.sechub.adapter.AdapterException;
import com.mercedesbenz.sechub.adapter.AdapterLogId;
import com.mercedesbenz.sechub.adapter.TraceIdProvider;
import com.mercedesbenz.sechub.test.junit4.ExpectedExceptionFactory;

public class JSONAdapterSupportTest {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
import java.util.Base64;
import java.util.UUID;

import org.springframework.stereotype.Service;
import org.springframework.stereotype.Component;

@Service
@Component
public class APITokenGenerator {

public String generateNewAPIToken() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
import java.util.Base64;
import java.util.UUID;

import org.springframework.stereotype.Service;
import org.springframework.stereotype.Component;

@Service
@Component
public class OneTimeTokenGenerator {

public String generateNewOneTimeToken() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.mercedesbenz.analyzer.model.AnalyzerResult;
import com.mercedesbenz.sechub.analyzer.core.Analyzer;
import com.mercedesbenz.sechub.analyzer.model.AnalyzerResult;

import ch.qos.logback.classic.Level;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.mercedesbenz.analyzer.model.AnalyzerResult;
import com.mercedesbenz.analyzer.model.MarkerPair;
import com.mercedesbenz.sechub.analyzer.model.AnalyzerResult;
import com.mercedesbenz.sechub.analyzer.model.MarkerPair;

/**
* Main analyzer class which represents the entry point for callers. Starts
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
import java.util.LinkedList;
import java.util.List;

import com.mercedesbenz.analyzer.model.Marker;
import com.mercedesbenz.analyzer.model.MarkerPair;
import com.mercedesbenz.analyzer.model.MarkerType;
import com.mercedesbenz.sechub.analyzer.model.Marker;
import com.mercedesbenz.sechub.analyzer.model.MarkerPair;
import com.mercedesbenz.sechub.analyzer.model.MarkerType;

/**
* Searches through a file looking for SecHub markers
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
package com.mercedesbenz.analyzer.model;
package com.mercedesbenz.sechub.analyzer.model;

import java.io.IOException;
import java.util.HashMap;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
package com.mercedesbenz.analyzer.model;
package com.mercedesbenz.sechub.analyzer.model;

public interface DeepClonable<T> {
public T deepClone();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
package com.mercedesbenz.analyzer.model;
package com.mercedesbenz.sechub.analyzer.model;

public class Marker implements DeepClonable<Marker> {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
package com.mercedesbenz.analyzer.model;
package com.mercedesbenz.sechub.analyzer.model;

/**
* Represents always a pair of markers containing
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
package com.mercedesbenz.analyzer.model;
package com.mercedesbenz.sechub.analyzer.model;

public enum MarkerType {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@
import org.junit.Before;
import org.junit.Test;

import com.mercedesbenz.analyzer.model.AnalyzerResult;
import com.mercedesbenz.analyzer.model.Marker;
import com.mercedesbenz.analyzer.model.MarkerPair;
import com.mercedesbenz.analyzer.model.MarkerType;
import com.mercedesbenz.sechub.analyzer.model.AnalyzerResult;
import com.mercedesbenz.sechub.analyzer.model.Marker;
import com.mercedesbenz.sechub.analyzer.model.MarkerPair;
import com.mercedesbenz.sechub.analyzer.model.MarkerType;

/**
* Integration Tests
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@
import org.junit.Before;
import org.junit.Test;

import com.mercedesbenz.analyzer.model.Marker;
import com.mercedesbenz.analyzer.model.MarkerPair;
import com.mercedesbenz.analyzer.model.MarkerType;
import com.mercedesbenz.sechub.analyzer.model.Marker;
import com.mercedesbenz.sechub.analyzer.model.MarkerPair;
import com.mercedesbenz.sechub.analyzer.model.MarkerType;

public class FileProcessorTest {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,6 @@

import org.junit.Test;

import com.mercedesbenz.analyzer.model.AnalyzerResult;
import com.mercedesbenz.analyzer.model.Marker;
import com.mercedesbenz.analyzer.model.MarkerPair;
import com.mercedesbenz.analyzer.model.MarkerType;

public class AnalyzerResultTest {

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,6 @@

import org.junit.Test;

import com.mercedesbenz.analyzer.model.Marker;
import com.mercedesbenz.analyzer.model.MarkerPair;
import com.mercedesbenz.analyzer.model.MarkerType;

public class MarkerPairTest {
@Test
public void test_deepClone() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,6 @@

import org.junit.Test;

import com.mercedesbenz.analyzer.model.Marker;
import com.mercedesbenz.analyzer.model.MarkerType;

public class MarkerTest {
@Test
public void test_deepClone() {
Expand Down
20 changes: 20 additions & 0 deletions sechub-archunit-test/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// SPDX-License-Identifier: MIT
/*============================================================================
* Build file for subproject
*
* Root build file: "${rootProject.projectDir}/build.gradle"
* ============================================================================
*/

dependencies {
testImplementation library.springframework_web

for (project in projectType.archUnitProjects) {
testImplementation project
}

testImplementation spring_boot_dependency.junit_jupiter
testImplementation library.arch_unit
}

// executing archunit tests: ./gradlew sechub-archunit-test:test
Loading

0 comments on commit 440eb78

Please sign in to comment.