Merge pull request #163 from sorndotdev/feature/FmpMoney #257
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Model Serialization Check | |
| on: | |
| pull_request: | |
| types: [opened, synchronize, reopened] | |
| push: | |
| branches: [master] | |
| jobs: | |
| check-test-fixtures: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Find model classes and verify fixtures | |
| run: | | |
| MODEL_DIR="src/main/java/dev/sorn/fmp4j/models" | |
| FIXTURE_DIR="src/testFixtures/resources/models/serialization" | |
| # Find all Java classes in models directory | |
| while IFS= read -r -d '' file; do | |
| class_name=$(basename "$file" .java) | |
| # Skip FmpModel interface | |
| if [[ "$class_name" == "FmpModel" ]]; then | |
| echo "⏩ Skipping interface: $class_name" | |
| continue | |
| fi | |
| # Skip FmpStatement interface | |
| if [[ "$class_name" == "FmpStatement" ]]; then | |
| echo "⏩ Skipping interface: $class_name" | |
| continue | |
| fi | |
| class_name=$(basename "$file" .java) | |
| snapshot_file="$FIXTURE_DIR/${class_name}.snapshot" | |
| version_file="$FIXTURE_DIR/${class_name}.version" | |
| if [[ ! -f "$snapshot_file" ]]; then | |
| echo "🔴 Missing snapshot file for $class_name: $snapshot_file" | |
| exit 1 | |
| fi | |
| if [[ ! -f "$version_file" ]]; then | |
| echo "🔴 Missing version file for $class_name: $version_file" | |
| exit 1 | |
| fi | |
| echo "Found fixtures for $class_name" | |
| done < <(find "$MODEL_DIR" -name "*.java" -print0) | |
| echo "🟢 All model classes have corresponding snapshots and version files" |