From 4e966a59df5a95aed0d9149c47ab3cf638240171 Mon Sep 17 00:00:00 2001 From: Martin Geno Date: Thu, 30 Mar 2017 18:10:36 +0200 Subject: [PATCH] [TASK] add review model --- models/review.go | 28 ++++++++++++++++++++++++++++ models/review_test.go | 31 +++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 models/review.go create mode 100644 models/review_test.go diff --git a/models/review.go b/models/review.go new file mode 100644 index 0000000..3fe3f44 --- /dev/null +++ b/models/review.go @@ -0,0 +1,28 @@ +package models + +import "github.com/genofire/hs_master-kss-monolith/lib/database" + +type Review struct { + ID int64 + ProductID int64 + LocaleLanguage string + FirstName string + LastName string + RatingStars int64 + Text string +} + +func (r *Review) DisplayName() string { + if len(r.FirstName) > 0 { + if len(r.LastName) > 0 { + last := []byte(r.LastName) + return r.FirstName + " " + string(last[0]) + "." + } + return r.FirstName + } + return "Anonymous" +} + +func init() { + database.AddModel(&Review{}) +} diff --git a/models/review_test.go b/models/review_test.go new file mode 100644 index 0000000..7c48eab --- /dev/null +++ b/models/review_test.go @@ -0,0 +1,31 @@ +package models + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestDisplayName(t *testing.T) { + assert := assert.New(t) + + r := Review{} + assert.Equal("", r.FirstName, "wrong firstname") + assert.Equal("", r.LastName, "wrong lastname") + assert.Equal("Anonymous", r.DisplayName(), "No name") + + r.FirstName = "Max" + assert.Equal("Max", r.FirstName, "wrong firstname") + assert.Equal("", r.LastName, "wrong lastname") + assert.Equal("Max", r.DisplayName(), "Only Firstname") + + r.LastName = "Mustermann" + assert.Equal("Max", r.FirstName, "wrong firstname") + assert.Equal("Mustermann", r.LastName, "wrong lastname") + assert.Equal("Max M.", r.DisplayName(), "Shorted Name") + + r.FirstName = "" + assert.Equal("", r.FirstName, "wrong firstname") + assert.Equal("Mustermann", r.LastName, "wrong lastname") + assert.Equal("Anonymous", r.DisplayName(), "displayname: no firstname") +}