| # Maps Booking |
| |
| This repo contains tools and code samples for partners that wish to integrate |
| with [Reserve](https://www.google.com/maps/reserve/) API v3. |
| |
| ## 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 with Linux |
| |
| 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-v3 |
| |
| Next, add the following to your ~/.bashrc |
| |
| export PATH=$PATH:$(go env GOPATH)/bin |
| export GOPATH=$(go env GOPATH) |
| export GOBIN=$(go env GOPATH)/bin |
| |
| Source changes |
| |
| source ~/.bashrc |
| |
| Next, retrieve the utility from the |
| [maps-booking-v3 repository](https://maps-booking.googlesource.com/) |
| |
| git clone https://maps-booking.googlesource.com/maps-booking-v3 $HOME/go/src/github.com/maps-booking-v3/ |
| |
| Lastly, download all dependencies and install the tool. |
| |
| cd $HOME/go |
| go get -d ./... |
| go install $HOME/go/src/github.com/maps-booking-v3/testclient/main.go |
| |
| ### Installing the utility with Windows Powershell |
| |
| 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) |
| |
| $env:HOME = $env:USERPROFILE |
| md $env:HOME\go\bin |
| md $env:HOME\go\pkg |
| md $env:HOME\go\src\github.com\maps-booking-v3 |
| |
| Next, set the appropriate environment variables |
| |
| $env:PATH = $env:PATH + ";" + (go env GOPATH) + "\bin" |
| $env:GOPATH = (go env GOPATH) |
| $env:GOBIN = (go env GOPATH) + "\bin" |
| |
| Next, retrieve the utility from the |
| [maps-booking-v3 repository](https://maps-booking.googlesource.com/) |
| |
| git clone https://maps-booking.googlesource.com/maps-booking-v3 $env:HOME\go\src\github.com\maps-booking-v3\ |
| |
| Lastly, download all dependencies and install the tool. |
| |
| cd $env:HOME\go |
| go get -d .\... |
| go install $env:HOME\go\src\github.com\maps-booking-v3\testclient\main.go |
| |
| ### Using the utility |
| |
| After following the install steps above an executable should now live in |
| |
| $HOME/go/bin/main |
| |
| or |
| |
| $env:HOME\go\bin\main.exe |
| |
| 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. |
| -ca_file string |
| Absolute path to your server's Certificate Authority root cert. |
| Downloading all roots currently recommended by the Google Internet |
| Authority is a suitable alternative https://pki.google.com/roots.pem |
| -cancel_all_bookings |
| This option assumes that the ListBookings and UpdateBooking endpoints |
| are fully functional. This is a convenience flag for purging your system |
| of all previously created bookings. |
| -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. |
| -server_addr string |
| Your http server's address in the format of host:port |
| (default "example.com:80") |
| -username_password string |
| (eg 'username:password') credentials for your server. Leave blank to bypass authentication. |
| -ca_file string |
| Absolute path to your server's Certificate Authority root cert. Downloading all roots currently recommended by the Google Internet Authority is a suitable alternative https://pki.google.com/roots.pem. Leave blank to connect using http rather than https. |
| -full_server_name string |
| Fully qualified domain name. Same name used to sign CN. Only necessary if ca_file is specified and the base URL differs from the server address. |
| |
| Example Usage: |
| |
| bin/main -health_check_test=true -check_availability_test=true |
| -output_dir="/tmp" -server_addr="http-service.google.com:50051” |
| -availability_feed="/tmp/test.json" |
| |
| ### Parsing the output |
| |
| The test utility will output a file with the prefix 'http_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. |