diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml
new file mode 100644
index 0000000..d31e87f
--- /dev/null
+++ b/.github/workflows/go.yml
@@ -0,0 +1,37 @@
+name: Go
+
+on:
+ push:
+ branches: [ master ]
+ pull_request:
+ branches: [ master ]
+
+jobs:
+
+ build:
+ name: Build
+ runs-on: ubuntu-latest
+ steps:
+
+ - name: Set up Go 1.x
+ uses: actions/setup-go@v2
+ with:
+ go-version: ^1.13
+ id: go
+
+ - name: Check out code into the Go module directory
+ uses: actions/checkout@v2
+
+ - name: Get dependencies
+ run: |
+ go get -v -t -d ./...
+ if [ -f Gopkg.toml ]; then
+ curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh
+ dep ensure
+ fi
+
+ - name: Build
+ run: go build -v .
+
+ - name: Test
+ run: go test -v .
diff --git a/.gitpod.yml b/.gitpod.yml
new file mode 100644
index 0000000..d473f31
--- /dev/null
+++ b/.gitpod.yml
@@ -0,0 +1,2 @@
+tasks:
+ - init: go get && make build && make test
diff --git a/README.md b/README.md
index 717244a..9cd2f05 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,16 @@
-# go - openweatherapi
+
+[![Go Report Card](https://goreportcard.com/badge/github.com/EricNeid/go-openweather?style=flat-square)](https://goreportcard.com/report/github.com/EricNeid/go-openweather)
+![Go](https://github.com/EricNeid/go-openweather/workflows/Go/badge.svg)
+[![Go Doc](https://img.shields.io/badge/godoc-reference-blue.svg?style=flat-square)](http://godoc.org/github.com/EricNeid/go-openweather)
+[![Release](https://img.shields.io/github/release/EricNeid/go-openweather.svg?style=flat-square)](https://github.com/EricNeid/go-openweather/releases/latest)
+[![Gitpod Ready-to-Code](https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/EricNeid/go-openweather)
+
+# About
This Repo contains golang library to query OpenWetherMaps () for weather information.
-* current weather: http://openweathermap.org/current
-* 5 days forecast: http://openweathermap.org/forecast5
+* current weather:
+* 5 days forecast:
## Install
diff --git a/api_test.go b/integration_test.go
similarity index 80%
rename from api_test.go
rename to integration_test.go
index 1090c26..40e63ca 100644
--- a/api_test.go
+++ b/integration_test.go
@@ -1,10 +1,12 @@
+// +build integration
+
package openweather
import (
"io/ioutil"
"testing"
- "github.com/EricNeid/go-openweather/internal/test"
+ "github.com/EricNeid/go-openweather/internal/verify"
)
const apiKeyFile = "testdata/api.key"
@@ -29,8 +31,8 @@ func TestForecastRaw(t *testing.T) {
// action
resp, err := q.DailyForecast5Raw()
// verify
- test.Ok(t, err)
- test.Assert(t, len(resp) > 0, "Received empty response")
+ verify.Ok(t, err)
+ verify.Assert(t, len(resp) > 0, "Received empty response")
}
func TestWeatherRaw(t *testing.T) {
@@ -39,8 +41,8 @@ func TestWeatherRaw(t *testing.T) {
// action
resp, err := q.WeatherRaw()
// verify
- test.Ok(t, err)
- test.Assert(t, len(resp) > 0, "Received empty response")
+ verify.Ok(t, err)
+ verify.Assert(t, len(resp) > 0, "Received empty response")
}
func TestWeather(t *testing.T) {
@@ -49,8 +51,8 @@ func TestWeather(t *testing.T) {
// action
data, err := q.Weather()
// verify
- test.Ok(t, err)
- test.Equals(t, "Berlin", data.Name)
+ verify.Ok(t, err)
+ verify.Equals(t, "Berlin", data.Name)
}
func TestDailyForecast(t *testing.T) {
@@ -59,8 +61,8 @@ func TestDailyForecast(t *testing.T) {
// action
data, err := q.DailyForecast5()
// verify
- test.Ok(t, err)
- test.Equals(t, "Berlin", data.City.Name)
+ verify.Ok(t, err)
+ verify.Equals(t, "Berlin", data.City.Name)
}
func TestDailyForecast5(t *testing.T) {
diff --git a/internal/test/testing_utils.go b/internal/verify/testing_utils.go
similarity index 98%
rename from internal/test/testing_utils.go
rename to internal/verify/testing_utils.go
index 3497485..9265105 100644
--- a/internal/test/testing_utils.go
+++ b/internal/verify/testing_utils.go
@@ -1,4 +1,4 @@
-package test
+package verify
import (
"fmt"
diff --git a/query_test.go b/query_test.go
index 6a1c20b..80e452a 100644
--- a/query_test.go
+++ b/query_test.go
@@ -3,27 +3,27 @@ package openweather
import (
"testing"
- "github.com/EricNeid/go-openweather/internal/test"
+ "github.com/EricNeid/go-openweather/internal/verify"
)
func TestNewQueryForCity(t *testing.T) {
// arrange
apiKey := "testKey"
- location := cityBerlin
+ location := "Berlin,de"
// action
q := NewQueryForCity(apiKey, location)
// verify
- test.Equals(t, apiKey, q.APIKey)
- test.Equals(t, location, q.Query)
- test.Equals(t, "metric", q.Unit)
- test.Equals(t, queryTypeCity, q.queryType)
+ verify.Equals(t, apiKey, q.APIKey)
+ verify.Equals(t, location, q.Query)
+ verify.Equals(t, "metric", q.Unit)
+ verify.Equals(t, queryTypeCity, q.queryType)
// arrange
unit := "imperial"
// action
q = NewQueryForCity(apiKey, location, unit)
// verify
- test.Equals(t, unit, q.Unit)
+ verify.Equals(t, unit, q.Unit)
}
func TestNewQueryForZip(t *testing.T) {
@@ -33,9 +33,9 @@ func TestNewQueryForZip(t *testing.T) {
// action
q := NewQueryForZip(apiKey, zip)
// verify
- test.Equals(t, apiKey, q.APIKey)
- test.Equals(t, zip, q.Query)
- test.Equals(t, queryTypeZip, q.queryType)
+ verify.Equals(t, apiKey, q.APIKey)
+ verify.Equals(t, zip, q.Query)
+ verify.Equals(t, queryTypeZip, q.queryType)
}
func TestNewQueryForID(t *testing.T) {
@@ -45,9 +45,9 @@ func TestNewQueryForID(t *testing.T) {
// action
q := NewQueryForID(apiKey, id)
// verify
- test.Equals(t, apiKey, q.APIKey)
- test.Equals(t, id, q.Query)
- test.Equals(t, queryTypeID, q.queryType)
+ verify.Equals(t, apiKey, q.APIKey)
+ verify.Equals(t, id, q.Query)
+ verify.Equals(t, queryTypeID, q.queryType)
}
func TestNewQueryForLocation(t *testing.T) {
@@ -58,7 +58,7 @@ func TestNewQueryForLocation(t *testing.T) {
// action
q := NewQueryForLocation(apiKey, lat, lon)
// verify
- test.Equals(t, apiKey, q.APIKey)
- test.Equals(t, lat+"|"+lon, q.Query)
- test.Equals(t, queryTypeGeo, q.queryType)
+ verify.Equals(t, apiKey, q.APIKey)
+ verify.Equals(t, lat+"|"+lon, q.Query)
+ verify.Equals(t, queryTypeGeo, q.queryType)
}