⚠️ Hinweis: Dieses Projekt dient ausschließlich zum Testen von PR-Impact-Analysetools.
Dieses Spring Boot-Projekt wurde speziell entwickelt, um PR-Impact-Analysetools zu testen. Es enthält absichtlich markierte Stellen für verschiedene Änderungsszenarien, die typische Code-Änderungen in realen Projekten simulieren.
- Framework: Spring Boot 3.2.3
- Build-Tool: Gradle 8.5
- Java-Version: 17
- Datenbank: H2 (In-Memory)
- Security: Spring Security
- Monitoring: Spring Actuator
src/main/java/com/primpact/testproject/
├── PrImpactTestApplication.java # Main Application
├── client/
│ └── FakePaymentClient.java # External Service Mock
├── config/
│ └── SecurityConfig.java # Security Configuration
├── controller/
│ └── OrderController.java # REST API Controller
├── entity/
│ └── OrderEntity.java # JPA Entity
├── model/
│ ├── OrderRequest.java # Request DTO
│ ├── OrderResponse.java # Response DTO
│ └── UserModel.java # User Model
├── repository/
│ └── OrderRepository.java # Data Access Layer
└── service/
└── OrderService.java # Business Logic Layer
Markierte Stellen für Security-relevante Änderungen:
SecurityConfig.java- SecurityFilterChain, CSRF, Authorization RulesUserModel.java- Rolle-basierte Logik
Markierte Stellen für Business-Logik-Änderungen:
OrderService.java-isDiscountApplicable(),categorizeOrder(),processOrder()FakePaymentClient.java- External Payment ServiceOrderRepository.java- Custom Queries
Markierte Stellen für Konfigurations-Änderungen:
application.yml- Feature Flags, Actuator Exposure, Logging LevelOrderController.java- Export Status EndpointOrderService.java- Feature Flag Usage
Markierte Stellen für API-Breaking Changes:
OrderController.java- REST EndpointsOrderEntity.java- Entity FieldsOrderRequest.java/OrderResponse.java- DTOs
Kommentare mit // SECURITY TEST POINT markieren kritische Sicherheitskonfigurationen:
- CSRF-Konfiguration (aktiviert, nicht deaktiviert)
- Authorization Rules (keine
permitAllfür sensible Endpoints) - UserDetailsService mit Rollen
Die application.yml enthält markierte Stellen für typische Config-Drift-Szenarien:
| Konfiguration | Standard | Drift-Szenario |
|---|---|---|
feature.export.enabled |
false |
→ true |
management.endpoints.web.exposure.include |
health |
→ * |
logging.level.root |
INFO |
→ DEBUG |
./gradlew build./gradlew test./gradlew bootRun# Health Check
curl -u user:password http://localhost:8080/actuator/health
# Order erstellen
curl -u user:password -X POST http://localhost:8080/api/orders \
-H "Content-Type: application/json" \
-d '{"amount": 1500}'
# Alle Orders abrufen
curl -u user:password http://localhost:8080/api/ordersOrderServiceTest- Unit Tests für Business LogicisDiscountApplicable()TestscategorizeOrder()Tests (verschachtelte ifs)processOrder()Tests (mit Payment Client Mock)
OrderControllerTest- Integration Tests mit MockMvc- API Endpoint Tests
- Security Tests (Authentication, CSRF)
| Branch | Beschreibung |
|---|---|
main |
Basis-Projekt |
branch-security-relaxation |
Security gelockert (permitAll, CSRF disabled) |
branch-business-logic-change |
Discount-Logik geändert |
branch-api-breaking |
API-Breaking Changes |
branch-config-drift |
Konfigurationsänderungen |
| Username | Password | Rollen |
|---|---|---|
user |
password |
USER |
admin |
admin |
USER, ADMIN |
Erstellt für: PR-Impact-Analyse-Tool Testing