Добавлен main и модуль вывода
Этот коммит содержится в:
родитель
6809e376d7
коммит
2331561f35
5 изменённых файлов: 187 добавлений и 0 удалений
16
cmd/schet/main.go
Обычный файл
16
cmd/schet/main.go
Обычный файл
|
@ -0,0 +1,16 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"my/schet/pkg/output/cli"
|
||||
"my/schet/pkg/schet"
|
||||
)
|
||||
|
||||
const (
|
||||
Год = 2024
|
||||
)
|
||||
|
||||
func main() {
|
||||
g := schet.NewГод(Год)
|
||||
output := cli.NewCLI()
|
||||
g.Вывести(output)
|
||||
}
|
86
pkg/output/cli/cli.go
Обычный файл
86
pkg/output/cli/cli.go
Обычный файл
|
@ -0,0 +1,86 @@
|
|||
package cli
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"my/schet/pkg/schet"
|
||||
)
|
||||
|
||||
type CLI struct {
|
||||
год *schet.Год
|
||||
}
|
||||
|
||||
func NewCLI() *CLI {
|
||||
c := &CLI{}
|
||||
return c
|
||||
}
|
||||
|
||||
func (c *CLI) Печать(год *schet.Год) error {
|
||||
c.год = год
|
||||
fmt.Printf("## Год: %v\n", c.год.Год())
|
||||
|
||||
err := c.кварталы()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *CLI) кварталы() error {
|
||||
цели := c.год.Цели()
|
||||
for _, k := range цели.Кварталы {
|
||||
c.квартал(k)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *CLI) квартал(k *schet.Квартал) error {
|
||||
fmt.Printf("### к%v\n\n", k.Номер())
|
||||
fmt.Printf("- [ ] ОПС: %v р.\n", k.ОПС.Сумма())
|
||||
пр, err := k.ПроцентСверх300тр()
|
||||
if err != nil {
|
||||
fmt.Printf("- [ ] 1пр свыше 300тр: ошибка: %v\n", err)
|
||||
return err
|
||||
}
|
||||
fmt.Printf("- [ ] 1пр свыше 300тр: %v р.\n", пр)
|
||||
fmt.Printf("- [ ] УСН: %v р.\n", k.УСН.Сумма())
|
||||
|
||||
fmt.Printf("==================================\n\n")
|
||||
return nil
|
||||
}
|
||||
|
||||
// func (g *CLI) Квартал(in int) (k *Квартал, e error) {
|
||||
// return g.цели.Квартал(in)
|
||||
// }
|
||||
|
||||
// func (g *CLI) ДобавитьДоход(доход float64, i int) error {
|
||||
// k, err := g.Квартал(i)
|
||||
// if err != nil {
|
||||
// return err
|
||||
// }
|
||||
|
||||
// g.доход += доход
|
||||
|
||||
// return k.ДобавитьДоход(доход)
|
||||
// }
|
||||
// func (g *CLI) Доход() float64 {
|
||||
// return g.доход
|
||||
// }
|
||||
|
||||
// func (g *CLI) ПроцентСверх300тр() (float64, error) {
|
||||
// return ПроцентСверх300тр(g.доход), nil
|
||||
// }
|
||||
|
||||
// func (g *CLI) Сверх300трвКвартале(квартал int) (float64, error) {
|
||||
// сумматор := NewСумматор300тр()
|
||||
// for i := НомерПервогоКвартала; i <= квартал; i++ {
|
||||
// k, err := g.Квартал(i)
|
||||
// if err != nil {
|
||||
// return 0, err
|
||||
// }
|
||||
// сумматор.ДобавитьКвартал(k.доход)
|
||||
// }
|
||||
|
||||
// return сумматор.Квартал(квартал)
|
||||
// }
|
31
pkg/output/cli/cli_test.go
Обычный файл
31
pkg/output/cli/cli_test.go
Обычный файл
|
@ -0,0 +1,31 @@
|
|||
package cli
|
||||
|
||||
import (
|
||||
. "github.com/onsi/gomega"
|
||||
)
|
||||
|
||||
type testData struct {
|
||||
}
|
||||
|
||||
var (
|
||||
t *testData
|
||||
)
|
||||
|
||||
func resetTestData() {
|
||||
t = &testData{}
|
||||
}
|
||||
|
||||
func beforeSuite() {
|
||||
}
|
||||
func afterSuite() {
|
||||
}
|
||||
|
||||
func beforeScenario() {
|
||||
resetTestData()
|
||||
_ = Ω
|
||||
|
||||
}
|
||||
func afterScenario() {
|
||||
}
|
||||
|
||||
// -----------------------
|
3
pkg/output/cli/features/app.feature
Обычный файл
3
pkg/output/cli/features/app.feature
Обычный файл
|
@ -0,0 +1,3 @@
|
|||
# Во имя Бога Милостивого, Милосердного!!!
|
||||
# language: ru
|
||||
Функциональность: CLI
|
51
pkg/output/cli/init_test.go
Обычный файл
51
pkg/output/cli/init_test.go
Обычный файл
|
@ -0,0 +1,51 @@
|
|||
package cli
|
||||
|
||||
import (
|
||||
"context"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
. "my/schet/pkg/testlib"
|
||||
|
||||
"github.com/cucumber/godog"
|
||||
"github.com/cucumber/godog/colors"
|
||||
|
||||
. "github.com/onsi/gomega"
|
||||
)
|
||||
|
||||
func InitializeScenario(ctx *godog.ScenarioContext) {
|
||||
|
||||
// -----------------------
|
||||
ctx.Before(func(ctx context.Context, sc *godog.Scenario) (context.Context, error) {
|
||||
beforeScenario()
|
||||
return ctx, nil
|
||||
})
|
||||
ctx.After(func(ctx context.Context, sc *godog.Scenario, err error) (context.Context, error) {
|
||||
afterScenario()
|
||||
return ctx, nil
|
||||
})
|
||||
InitializeGomegaForGodog(ctx)
|
||||
_ = Ω
|
||||
}
|
||||
|
||||
func InitializeSuite(tsc *godog.TestSuiteContext) {
|
||||
tsc.BeforeSuite(beforeSuite)
|
||||
tsc.AfterSuite(afterSuite)
|
||||
}
|
||||
|
||||
func TestMain(t *testing.T) {
|
||||
var opts = godog.Options{
|
||||
Output: colors.Colored(os.Stdout),
|
||||
Strict: true,
|
||||
StopOnFailure: true,
|
||||
TestingT: t,
|
||||
}
|
||||
|
||||
godog.BindCommandLineFlags("godog.", &opts)
|
||||
godog.TestSuite{
|
||||
Name: "app",
|
||||
TestSuiteInitializer: InitializeSuite,
|
||||
ScenarioInitializer: InitializeScenario,
|
||||
Options: &opts,
|
||||
}.Run()
|
||||
}
|
Загрузка…
Создание таблицы
Сослаться в новой задаче