Skip to content

Commit

Permalink
Added parse region from string method
Browse files Browse the repository at this point in the history
  • Loading branch information
nicobock committed Oct 25, 2022
1 parent 3b1dd7a commit 22ed95a
Show file tree
Hide file tree
Showing 2 changed files with 163 additions and 0 deletions.
66 changes: 66 additions & 0 deletions region.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package feiertage

import (
"fmt"
"github.com/pkg/errors"
"sort"
"strings"
)
Expand Down Expand Up @@ -372,3 +373,68 @@ func GetAllRegions(year int, inklSonntag bool, country ...string) (regions []Reg

return regions
}

func GetRegionFromString(region string, y int) (Region, error) {

region = strings.ToLower(region)
region = strings.ReplaceAll(region, " ", "")
region = strings.ReplaceAll(region, "-", "")
region = strings.ReplaceAll(region, "ä", "ae")
region = strings.ReplaceAll(region, "ü", "ue")
region = strings.ReplaceAll(region, "ö", "oe")
switch region {
case "badenwuerttemberg":
return BadenWürttemberg(y), nil
case "bayern":
return Bayern(y), nil
case "berlin":
return Berlin(y), nil
case "brandenburg":
return Brandenburg(y), nil
case "bremen":
return Bremen(y), nil
case "hamburg":
return Hamburg(y), nil
case "hessen":
return Hessen(y), nil
case "mecklenburgvorpommern":
return MecklenburgVorpommern(y), nil
case "niedersachsen":
return Niedersachsen(y), nil
case "nordrheinwestfalen":
return NordrheinWestfalen(y), nil
case "rheinlandpfalz":
return RheinlandPfalz(y), nil
case "saarland":
return Saarland(y), nil
case "sachsen":
return Sachsen(y), nil
case "sachsenanhalt":
return SachsenAnhalt(y), nil
case "schleswigholstein":
return SchleswigHolstein(y), nil
case "thueringen":
return Thüringen(y), nil
case "burgenland":
return Burgenland(y), nil
case "kaernten":
return Kärnten(y), nil
case "niederoesterreich":
return Niederösterreich(y), nil
case "oberoesterreich":
return Oberösterreich(y), nil
case "salzburg":
return Salzburg(y), nil
case "steiermark":
return Steiermark(y), nil
case "tirol":
return Tirol(y), nil
case "vorarlberg":
return Vorarlberg(y), nil
case "wien":
return Wien(y), nil
case "oesterreich":
return Österreich(y), nil
}
return Region{}, errors.New(fmt.Sprintf("Not found region for: '%s'", region))
}
97 changes: 97 additions & 0 deletions region_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package feiertage

import (
"fmt"
"github.com/stretchr/testify/assert"
"testing"
)

Expand Down Expand Up @@ -92,3 +93,99 @@ func TestFeiertageZahl(t *testing.T) {
fmt.Println(Brandenburg(2017))

}

func TestGetRegionFromString(t *testing.T) {
_, err := GetRegionFromString("", 2022)
assert.Error(t, err)
_, err = GetRegionFromString("Sachen-Anhalt", 2022)
assert.Error(t, err)

region, err := GetRegionFromString("Sachsen-Anhalt", 2022)
assert.Equal(t, region, SachsenAnhalt(2022))
assert.NoError(t, err)
region, err = GetRegionFromString("Sachsen Anhalt", 2022)
assert.Equal(t, region, SachsenAnhalt(2022))
assert.NoError(t, err)
region, err = GetRegionFromString("SachsenAnhalt", 2022)
assert.Equal(t, region, SachsenAnhalt(2022))
assert.NoError(t, err)
region, err = GetRegionFromString("Baden Württemberg", 2022)
assert.Equal(t, region, BadenWürttemberg(2022))
assert.NoError(t, err)
region, err = GetRegionFromString("Bayern", 2022)
assert.Equal(t, region, Bayern(2022))
assert.NoError(t, err)
region, err = GetRegionFromString("bayern", 2022)
assert.Equal(t, region, Bayern(2022))
assert.NoError(t, err)
region, err = GetRegionFromString("Berlin", 2022)
assert.Equal(t, region, Berlin(2022))
assert.NoError(t, err)
region, err = GetRegionFromString("Brandenburg", 2022)
assert.Equal(t, region, Brandenburg(2022))
assert.NoError(t, err)
region, err = GetRegionFromString("Bremen", 2022)
assert.Equal(t, region, Bremen(2022))
assert.NoError(t, err)
region, err = GetRegionFromString("Hamburg", 2022)
assert.Equal(t, region, Hamburg(2022))
assert.NoError(t, err)
region, err = GetRegionFromString("Niedersachsen", 2022)
assert.Equal(t, region, Niedersachsen(2022))
assert.NoError(t, err)
region, err = GetRegionFromString("NordrheinWestfalen", 2022)
assert.Equal(t, region, NordrheinWestfalen(2022))
assert.NoError(t, err)
region, err = GetRegionFromString("RheinlandPfalz", 2022)
assert.Equal(t, region, RheinlandPfalz(2022))
assert.NoError(t, err)
region, err = GetRegionFromString("Saarland", 2022)
assert.Equal(t, region, Saarland(2022))
assert.NoError(t, err)
region, err = GetRegionFromString("Sachsen", 2022)
assert.Equal(t, region, Sachsen(2022))
assert.NoError(t, err)
region, err = GetRegionFromString("SachsenAnhalt", 2022)
assert.Equal(t, region, SachsenAnhalt(2022))
assert.NoError(t, err)
region, err = GetRegionFromString("SchleswigHolstein", 2022)
assert.Equal(t, region, SchleswigHolstein(2022))
assert.NoError(t, err)
region, err = GetRegionFromString("Thüringen", 2022)
assert.Equal(t, region, Thüringen(2022))
assert.NoError(t, err)
region, err = GetRegionFromString("Thüringen", 2022)
assert.Equal(t, region, Thüringen(2022))

region, err = GetRegionFromString("Burgenland", 2022)
assert.Equal(t, region, Burgenland(2022))
assert.NoError(t, err)
region, err = GetRegionFromString("Kärnten", 2022)
assert.Equal(t, region, Kärnten(2022))
assert.NoError(t, err)
region, err = GetRegionFromString("Niederösterreich", 2022)
assert.Equal(t, region, Niederösterreich(2022))
assert.NoError(t, err)
region, err = GetRegionFromString("Oberösterreich", 2022)
assert.Equal(t, region, Oberösterreich(2022))
assert.NoError(t, err)
region, err = GetRegionFromString("Salzburg", 2022)
assert.Equal(t, region, Salzburg(2022))
assert.NoError(t, err)
region, err = GetRegionFromString("Steiermark", 2022)
assert.Equal(t, region, Steiermark(2022))
assert.NoError(t, err)
region, err = GetRegionFromString("Tirol", 2022)
assert.Equal(t, region, Tirol(2022))
assert.NoError(t, err)
region, err = GetRegionFromString("Vorarlberg", 2022)
assert.Equal(t, region, Vorarlberg(2022))
assert.NoError(t, err)
region, err = GetRegionFromString("Wien", 2022)
assert.Equal(t, region, Wien(2022))
assert.NoError(t, err)
region, err = GetRegionFromString("Österreich", 2022)
assert.Equal(t, region, Österreich(2022))
assert.NoError(t, err)

}

0 comments on commit 22ed95a

Please sign in to comment.