schet/pkg/schet/schet_test.go

145 строки
3,9 КиБ
Go

package schet
import (
"fmt"
"my/schet/pkg/delo_lib"
. "my/schet/pkg/testlib"
. "github.com/onsi/gomega"
)
type testData struct {
g *Год
год_номер int
квартал_номер int
квартал *Квартал
доход float64
цели *Цели
должнаБытьОшибка bool
}
var (
t *testData
)
func resetTestData() {
t = &testData{}
}
func beforeSuite() {
}
func afterSuite() {
}
func beforeScenario() {
resetTestData()
_ = Ω
}
func afterScenario() {
}
// -----------------------
func год(год int) {
t.год_номер = год
t.g = NewГод(t.год_номер)
t.цели = t.g.Цели()
}
func квартал(квартал int) {
t.квартал_номер = квартал
k, err := t.цели.Квартал(t.квартал_номер)
Ok(err)
t.квартал = k
}
func доход(доход float64) {
t.доход = доход
err := t.g.ДобавитьДоход(t.доход, t.квартал_номер)
Ok(err)
}
func доходЗаКвартал(доход float64, квартал int) {
err := t.g.ДобавитьДоход(доход, квартал)
Ok(err)
}
func доходВКвартал(доход float64) {
Ω(t.квартал.Доход()).To(Be(доход), "доходВКвартал")
}
func доходВГод(доход float64) {
Ω(t.g.Доход()).To(Be(доход), "доходВГод")
}
func естьЦельОПСЗаЭтотКвартал(v float64) {
Ω(t.квартал.ОПС.Сумма()).To(Be(v), "ОПС за квартал")
}
func естьЦельУСНЗаЭтотКвартал(v float64) {
Ω(t.квартал.УСН.Сумма()).To(Be(v), "УСН за квартал")
}
func естьЦельСверхТрЗаКвартал(_, _, оплатить string) {
v := Atof(оплатить)
v = delo_lib.ОкруглитьРубли(v)
Ω(t.квартал.ПроцентСверх300тр()).To(Be(v), "1пр сверх 300тр за квартал")
}
func естьЦельСверхТрЗаNКвартал(arg1, arg2, in int, оплатить string) {
k, err := t.цели.Квартал(in)
Ok(err)
Ω(k.ПроцентСверх300тр()).To(Be(Atof(оплатить)), fmt.Sprintf("1пр сверх 300тр за квартал %v", in))
}
func естьЦельСверхТрЗаГод(_, _, оплатить string) {
v := Atof(оплатить)
v = delo_lib.ОкруглитьРубли(v)
Ω(t.g.ПроцентСверх300тр()).To(Be(v), "1пр сверх 300тр за год")
}
func заданСчёт(v string) {
t.g.ЗадатьСчёт(v)
}
func считываетсяСчёт(v string) {
Ω(t.g.Счёт()).To(Be(v), "считываетсяСчёт")
}
func должнаБытьОшибка() {
t.должнаБытьОшибка = true
}
func заданОКТМО(v string) {
t.g.ЗадатьОКТМО(v)
}
func считываетсяОКТМО(v string) {
Ω(t.g.ОКТМО()).To(Be(v), "считываетсяОКТМО")
}
func действиеЗаКвартал(цель string, квартал int) {
err := t.g.Сделать(цель, квартал)
if t.должнаБытьОшибка {
Err(err)
} else {
Ok(err)
}
}
func цельЗаКварталДостигнута(цель string, квартал int, достигнута string) {
Ω(t.g.ЦельДостигнута(цель, квартал)).To(Be(Истина(достигнута)), "цельЗаКварталДостигнута: "+цель)
}
func кБК(цель, кбк string) {
k, err := t.g.КБК(цель)
if t.должнаБытьОшибка {
Err(err)
} else {
Ok(err)
}
Ω(k).To(Be(кбк), "кбк: "+цель)
}
func срокУплаты(цель, дата string) {
d, err := t.g.СрокУплаты(цель)
if t.должнаБытьОшибка {
Err(err)
} else {
Ok(err)
}
Ω(d).To(Be(дата), "срокУплаты: "+цель)
}