blob: 1fe2cdfd538fad6720b5815f580510e58811ac95 [file] [log] [blame] [view]
# Maps Booking
This repo contains tools and code samples for partners that wish to integrate
with [Reserve](https://www.google.com/maps/reserve/)
## Testing Client
Before using the test utility, the Go programming language must be installed
on your workstation. A precompiled Go binary for your operating system can
be [found here](https://golang.org/dl/)
This guide will assume you're using the default GOPATH and subsequent GOBIN.
For a comprehensive explanation of the GOPATH env variable please see
[this document](https://golang.org/dl/) by the Go team.
### Installing the utility
First, build your Go directory structure. A comprehensive guide on the intended
structure of Go code can be [found here.](https://golang.org/doc/code.html)
mkdir -p $HOME/go/bin $HOME/go/pkg $HOME/go/src/github.com/maps-booking
Next, retrieve the utility from the
[maps-booking repository](https://maps-booking.googlesource.com/)
git clone https://maps-booking.googlesource.com/test_client $HOME/go/src/github.com/maps-booking/
Lastly, download all dependencies and install the tool.
go get -d $HOME/go/...
go install $HOME/go/src/github.com/maps-booking/testclient/main.go
### Using the utility
After following the install steps above an executable should now live in
$HOME/go/bin/main
All available flags can be displayed using the '--help' flag. The currently
accepted flags are:
-all_tests
Whether to test all endpoints.
-availability_feed string
Absolute path to availability feed required for all tests except health.
Feeds can be in either json or pb3 format
-booking_status_test
Whether to test the GetBookingStatus endpoint.
-booking_test
Whether to test the CreateBooking endpoint.
-check_availability_test
Whether to test the CheckAvailability endpoint.
-health_check_test
Whether to test the Health endpoint.
-list_bookings_test
Whether to test the ListBookings endpoint
-num_test_slots int
Maximum number of slots to test from availability_feed.
Slots will be selected randomly (default 10)
-output_dir string
Absolute path of dir to dump log file.
-rescheduling_test
Whether to test the UpdateBooking endpoint.
-rpc_timeout duration
Number of seconds to wait before abandoning request (default 30s)
-server_addr string
Your grpc server's address in the format of
host:port (default "example.com:80")
Example Usage:
bin/main -health_check_test=true -check_availability_test=true
-output_dir="/tmp" -server_addr="localhost:50051”
-availability_feed="/tmp/test.json"
### Parsing the output
The test utility will output a file with the prefix 'grpc_test_client_log_'
followed by a timestamp in RFC3339 format. The output file contains a
complete log of all Requests and Responses sent/received by the testing tool as
well as diffs of the expected response in the event of errors.
Similar to a compiler, an overview of the entire run can be found at the end
of the file for user friendly digestion.