-
Notifications
You must be signed in to change notification settings - Fork 209
/
Copy pathgenerateTestForEnums.cmd
42 lines (38 loc) · 1.23 KB
/
generateTestForEnums.cmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
@ECHO OFF
CALL "%~dp0\validateCygwinBinaries.cmd"
IF "1"=="%ERRORLEVEL%" (
@ECHO Invalid or incomplete Cygwin installation. Install cygwin and its components viz.
@ECHO grep sed perl cut touch wget sort
EXIT /b 1
)
SET CYGWIN_EXE=%CYGWIN_HOME%\bin
@ECHO Generating enum tests
SET SRCDIR=Authorize.NET\Api\Contracts\V1
IF NOT EXIST "%SRCDIR%" (
@ECHO "%SRCDIR%" Does not exist
EXIT /b 1
)
SET CYGWIN=NODOSFILEWARNING
SET OUTFILE=%TEMP%\AllGeneratedEnumTest.cs
SET TEMPLATE=%CD%\scripts\EnumTemplate.cst
PUSHD "%SRCDIR%"
"%CYGWIN_EXE%\grep.exe" -i "public enum" AnetApiSchema.generated.cs | "%CYGWIN_EXE%\cut.exe" -c17- | "%CYGWIN_EXE%\cut.exe" -f1 -d" " > %TEMP%\enum.lst
@ECHO.> "%OUTFILE%"
@ECHO //Generated by cs-enum-test on %date%-%time% >> "%OUTFILE%"
@ECHO [Test] >> "%OUTFILE%"
@ECHO public void AllEnumTest() >> "%OUTFILE%"
@ECHO {>> "%OUTFILE%"
@ECHO.
@ECHO.
FOR /f %%x IN ( %TEMP%\enum.lst) DO (
@ECHO Processing %%x;
COPY %TEMPLATE% %TEMP%\%%x.cs 1>NUL
"%CYGWIN_EXE%\perl.exe" -pi -w -e 's/ENUMNAME/%%x/g;' %TEMP%\%%x.cs 2>NUL
TYPE %TEMP%\%%x.cs >> "%OUTFILE%"
)
@ECHO } >> "%OUTFILE%"
@ECHO.>> "%OUTFILE%"
POPD
@ECHO.
@ECHO.
@ECHO The generated test is in "%OUTFILE%"