generated from VLADIMIR/template
156 lines
3.5 KiB
Go
156 lines
3.5 KiB
Go
package services
|
|
|
|
import (
|
|
"evening_detective/internal/models"
|
|
"evening_detective/internal/modules/cleaner"
|
|
"evening_detective/internal/modules/formatter"
|
|
"evening_detective/internal/services/story_service"
|
|
"evening_detective/internal/services/story_storage"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestServices_getPlaces(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
story *story_service.Story
|
|
actions []*models.Action
|
|
want []*story_service.Place
|
|
}{
|
|
// {
|
|
// name: "Нельзя открыть скрытую точку",
|
|
// story: &story_service.Story{
|
|
// Places: []*story_service.Place{
|
|
// {
|
|
// Code: "Ы",
|
|
// Name: "Название",
|
|
// Text: "Текст",
|
|
// Hidden: true,
|
|
// },
|
|
// },
|
|
// },
|
|
// actions: []*models.Action{
|
|
// {
|
|
// Place: "Ы",
|
|
// },
|
|
// },
|
|
// want: []*story_service.Place{
|
|
// {
|
|
// Code: "Ы",
|
|
// Name: "Не найдено",
|
|
// Text: "Такой точки не существует.",
|
|
// },
|
|
// },
|
|
// },
|
|
// {
|
|
// name: "Нельзя открыть скрытую точку",
|
|
// story: &story_service.Story{
|
|
// Places: []*story_service.Place{
|
|
// {
|
|
// Code: "Ы-1",
|
|
// Name: "Название",
|
|
// Text: "Текст",
|
|
// },
|
|
// {
|
|
// Code: "Ы-2",
|
|
// Name: "Название",
|
|
// Text: "Текст",
|
|
// Hidden: true,
|
|
// },
|
|
// },
|
|
// },
|
|
// actions: []*models.Action{
|
|
// {
|
|
// Place: "Ы-1",
|
|
// },
|
|
// {
|
|
// Place: "Ы-2",
|
|
// },
|
|
// },
|
|
// want: []*story_service.Place{
|
|
// {
|
|
// Code: "Ы-1",
|
|
// Name: "Название",
|
|
// Text: "Текст",
|
|
// Applications: []*story_service.Application{},
|
|
// },
|
|
// {
|
|
// Code: "Ы-2",
|
|
// Name: "Не найдено",
|
|
// Text: "Такой точки не существует.",
|
|
// },
|
|
// },
|
|
// },
|
|
{
|
|
name: "Нельзя открыть скрытую точку",
|
|
story: &story_service.Story{
|
|
Places: []*story_service.Place{
|
|
{
|
|
Code: "Ы-1",
|
|
Name: "Название",
|
|
Text: "Текст",
|
|
Applications: []*story_service.Application{},
|
|
Doors: []*story_service.Door{
|
|
{
|
|
Code: "Ы-2",
|
|
Name: "Название",
|
|
},
|
|
},
|
|
},
|
|
{
|
|
Code: "Ы-2",
|
|
Name: "Название",
|
|
Text: "Текст",
|
|
Applications: []*story_service.Application{},
|
|
Hidden: true,
|
|
},
|
|
},
|
|
},
|
|
actions: []*models.Action{
|
|
{
|
|
Place: "Ы-1",
|
|
},
|
|
{
|
|
Place: "Ы-2",
|
|
},
|
|
},
|
|
want: []*story_service.Place{
|
|
{
|
|
Code: "Ы-1",
|
|
Name: "Название",
|
|
Text: "Текст",
|
|
Applications: []*story_service.Application{},
|
|
Doors: []*story_service.Door{
|
|
{
|
|
Code: "Ы-2",
|
|
Name: "Название",
|
|
},
|
|
},
|
|
},
|
|
{
|
|
Code: "Ы-2",
|
|
Name: "Название",
|
|
Text: "Текст",
|
|
Applications: []*story_service.Application{},
|
|
Hidden: true,
|
|
},
|
|
},
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
storyService, err := story_service.NewStoryService(
|
|
cleaner.NewCleaner(),
|
|
formatter.NewFormatter(),
|
|
story_storage.NewVarStoryStorage(tt.story),
|
|
)
|
|
assert.Nil(t, err)
|
|
|
|
s := NewServices(nil, storyService, nil, nil, nil, "")
|
|
got := s.getPlaces(tt.actions)
|
|
assert.Equal(t, got, tt.want)
|
|
})
|
|
}
|
|
}
|