HW12 completed

pull/13/head
Andrey Ivanov 2020-09-24 17:58:39 +03:00 committed by Andrey Ivanov
parent bc91e45c8b
commit 72ecf8fb02
4 changed files with 59 additions and 12 deletions

View File

@ -1,9 +0,0 @@
package http
/*
func loggingMiddleware(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
})
}
*/

View File

@ -32,6 +32,6 @@ func (s *Server) Stop() error {
if err := s.server.Close(); err != nil {
return err
}
s.app.Logger.Infof("Server starting")
s.app.Logger.Infof("Server stoped")
return nil
}

View File

@ -13,7 +13,7 @@ type Storage struct {
}
func New() *Storage {
return &Storage{}
return &Storage{Events: make(map[int64]event.Event)}
}
func (s *Storage) Create(event event.Event) (int64, error) {
@ -46,5 +46,5 @@ func (s *Storage) GetByID(id int64) (event.Event, bool) {
if s.Events[id].Title == "" {
return event.Event{}, false
}
return s.Events[id], false
return s.Events[id], true
}

View File

@ -0,0 +1,56 @@
package memorystorage
import (
"github.com/stretchr/testify/require"
"github.com/tiburon-777/HW_OTUS/hw12_13_14_15_calendar/internal/storage/event"
"testing"
)
func TestMemoryStorage(t *testing.T) {
s := New()
t.Run("Empty storage", func(t *testing.T) {
require.Equal(t,0, len(s.Events))
})
id,err:=s.Create(event.Event{ Title:"event1",Date:"11.11.1111" })
t.Run("Create events", func(t *testing.T) {
require.NoError(t,err)
require.Equal(t,1, len(s.Events))
require.Equal(t,event.Event{ Title:"event1",Date:"11.11.1111" }, s.Events[id])
})
t.Run("Update event", func(t *testing.T) {
err:=s.Update(id,event.Event{ Title:"event1_modifyed",Date:"22.11.22222" })
require.NoError(t,err)
require.Equal(t,1, len(s.Events))
require.Equal(t,event.Event{ Title:"event1_modifyed",Date:"22.11.22222" }, s.Events[id])
})
t.Run("List event", func(t *testing.T) {
res,err:=s.List()
require.NoError(t,err)
require.Equal(t,1, len(res))
require.Equal(t,event.Event{ Title:"event1_modifyed",Date:"22.11.22222" }, res[id])
})
t.Run("Get event by ID", func(t *testing.T) {
res,ok := s.GetByID(id)
require.Equal(t,ok,true)
require.Equal(t,event.Event{ Title:"event1_modifyed",Date:"22.11.22222" }, res)
})
t.Run("Get event by fake ID", func(t *testing.T) {
res,ok := s.GetByID(53663)
require.Equal(t,ok,false)
require.Equal(t,event.Event{}, res)
})
t.Run("Delete event", func(t *testing.T) {
err := s.Delete(id)
require.NoError(t,err)
require.Equal(t,0, len(s.Events))
})
}