Skip to content

Commit

Permalink
test: add initial C# runtime testing (#1481)
Browse files Browse the repository at this point in the history
add initial setup
  • Loading branch information
jonaslagoni authored Aug 22, 2023
1 parent 1cb0783 commit 627ed97
Show file tree
Hide file tree
Showing 10 changed files with 577 additions and 0 deletions.
43 changes: 43 additions & 0 deletions .github/workflows/runtime-csharp-testing.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Runtime Testing C# Models
on:
push:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
paths:
- 'src/generators/csharp/**'
- 'test/runtime/runtime-csharp/**'
- 'test/runtime/**csharp**'

jobs:
test:
name: Runtime Testing C# Models
if: "github.event.pull_request.draft == false &&!((github.actor == 'asyncapi-bot' && startsWith(github.event.pull_request.title, 'ci: update global workflows')) || (github.actor == 'asyncapi-bot' && startsWith(github.event.pull_request.title, 'chore(release):')) || (github.actor == 'allcontributors' && startsWith(github.event.pull_request.title, 'docs: add')))"
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Check package-lock version
uses: asyncapi/.github/.github/actions/get-node-version-from-package-lock@master
id: lockversion
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: "${{ steps.lockversion.outputs.version }}"
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- if: matrix.os != 'windows-latest'
name: Setup dotnet
uses: actions/setup-dotnet@v1
with:
dotnet-version: '6.0.x'
- if: matrix.os == 'windows-latest'
name: Setup csc.exe
uses: yoavain/Setup-CSC@v7
- name: Build library
run: npm install && npm run build:prod
- name: Generate C# models
run: npm run generate:runtime:csharp
- name: Run runtime tests
run: npm run test:runtime:csharp


2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,8 @@
"generate:runtime:php": "cross-env CI=true ts-node ./test/runtime/runtime-php.ts",
"test:runtime:typescript": "cd ./test/runtime/runtime-typescript && npm i && npm run test",
"generate:runtime:typescript": "cross-env CI=true ts-node ./test/runtime/runtime-typescript.ts",
"test:runtime:csharp": "cross-env CI=true jest ./test/runtime/runtime-csharp.spec.ts",
"generate:runtime:csharp": "cross-env CI=true ts-node ./test/runtime/runtime-csharp.ts",
"test:watch": "jest --watch",
"docs": "npm run docs:api",
"docs:api": "typedoc src/index.ts --out ./modelina-website/public/docs/api/generated --name Modelina",
Expand Down
12 changes: 12 additions & 0 deletions test/runtime/runtime-csharp.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { execCommand } from '../blackbox/utils/Utils';
import path from 'path';

jest.setTimeout(50000);

test('C# runtime testing', async () => {
const compileCommand = `cd ${path.resolve(
__dirname,
'./runtime-csharp'
)} && dotnet test runtime-csharp`;
await execCommand(compileCommand);
});
17 changes: 17 additions & 0 deletions test/runtime/runtime-csharp.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { CSHARP_JSON_SERIALIZER_PRESET, CSharpFileGenerator } from '../../';
import path from 'path';
import input from './generic-input.json';

const generator = new CSharpFileGenerator({
presets: [CSHARP_JSON_SERIALIZER_PRESET]
});

generator.generateToFiles(
input,
path.resolve(
// eslint-disable-next-line no-undef
__dirname,
'./runtime-csharp/runtime-csharp/src/models/json_serializer'
),
{ namespace: 'com.mycompany.app.generic' }
);
Loading

0 comments on commit 627ed97

Please sign in to comment.