1.0.1 • Published 4 years ago

smtc v1.0.1

Weekly downloads
1
License
MIT
Repository
github
Last release
4 years ago

Node.js CInpm version

smtc

This is a Smtc class. It's a "S"tate "M"achine "T"est "C"ase generator inspired by https://note.com/yumotsuyo/n/nd3099b40dc1f

Try it in your browser! TRY IT NOW

Document is here

install

$ npm i -g smtc

Usage

command line

# -h:help
# <file>:inputscript
# -s : switch
# -t : output type t:transition/m:matrix/c:testcases/d:diagram
smtc [-h] <file> [-s <0|1|2... (0:default)>] [-t <t|m|c|d (t:default)>]

sample data

alt text

$ cat __tests__/testData.txt
initial                  => "Accepting reservations" ;
"Accepting reservations" => "Reservation accepted"   : reserve ;
"Reservation accepted"   => "Reserved"               : approve;
"Reserved"               => "Reservation accepted"   : cancel approval;
"Reservation accepted"   => "Accepting reservations" : reject;
"Reservation accepted"   => "Accepting reservations" : cancel of reservation;
"Reserved"               => "Accepting reservations" : cancel;
"Reserved"               => final                    : car delivered;

Transition matrix

$ smtc __tests__/testData.txt
Nonereserveapprovecancel approvalrejectcancel of reservationcancelcar delivered
initialAccepting reservations
Accepting reservationsReservation accepted
Reservation acceptedReservedAccepting reservationsAccepting reservations
ReservedReservation acceptedAccepting reservationsfinal
final

zero switch cases

$ smtc __tests__/testData.txt -t c
#State#1Event#1State#2
0initialNoneAccepting reservations
1Accepting reservationsreserveReservation accepted
2Reservation acceptedrejectAccepting reservations
3Reservation acceptedcancel of reservationAccepting reservations
4Reservation acceptedapproveReserved
5ReservedcancelAccepting reservations
6Reservedcancel approvalReservation accepted
7Reservedcar deliveredfinal

zero switch matrix

$ smtc __tests__/testData.txt -t m
initialAccepting reservationsReservation acceptedReservedfinal
initialNone
Accepting reservationsreserve
Reservation acceptedreject,cancel of reservationapprove
Reservedcancelcancel approvalcar delivered
final

one switch cases

$ smtc __tests__/testData.txt -t c -s 1
#State#1Event#1State#2Event#2State#3
0initialNoneAccepting reservationsreserveReservation accepted
1Accepting reservationsreserveReservation acceptedrejectAccepting reservations
2Accepting reservationsreserveReservation acceptedcancel of reservationAccepting reservations
3Accepting reservationsreserveReservation acceptedapproveReserved
4Reservation acceptedapproveReservedcancelAccepting reservations
5Reservation acceptedrejectAccepting reservationsreserveReservation accepted
6Reservation acceptedcancel of reservationAccepting reservationsreserveReservation accepted
7Reservation acceptedapproveReservedcancel approvalReservation accepted
8Reservation acceptedapproveReservedcar deliveredfinal
9Reservedcancel approvalReservation acceptedrejectAccepting reservations
10Reservedcancel approvalReservation acceptedcancel of reservationAccepting reservations
11ReservedcancelAccepting reservationsreserveReservation accepted
12Reservedcancel approvalReservation acceptedapproveReserved

one switch matrix

$ smtc __tests__/testData.txt -t m -s 1
initialAccepting reservationsReservation acceptedReservedfinal
initialNone -> reserve
Accepting reservationsreserve -> reject,reserve -> cancel of reservationreserve -> approve
Reservation acceptedapprove -> cancelreject -> reserve,cancel of reservation -> reserve,approve -> cancel approvalapprove -> car delivered
Reservedcancel approval -> reject,cancel approval -> cancel of reservationcancel -> reservecancel approval -> approve
final

{% include form.html %}

1.0.1

4 years ago

1.0.0

4 years ago

0.0.9

4 years ago

0.0.8

4 years ago

0.0.7

4 years ago

0.0.5

4 years ago

0.0.6

4 years ago

0.0.4

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago