Jelajahi Sumber

Добавление типа приложения; 100%

SVI 3 tahun lalu
induk
melakukan
556fe6b4ad
3 mengubah file dengan 79 tambahan dan 0 penghapusan
  1. 30 0
      libtui/v0/app/app.go
  2. 40 0
      libtui/v0/app/app_test.go
  3. 9 0
      libtui/v0/types/iapp.go

+ 30 - 0
libtui/v0/app/app.go

@@ -0,0 +1,30 @@
+// package app -- главный объект приложения
+package app
+
+import (
+	"p78git.ddns.net/svi/libtui/screen"
+	"p78git.ddns.net/svi/libtui/types"
+)
+
+// App -- объектприложения
+type App struct {
+	screen types.IScreen // Объект приложения
+}
+
+// NewApp -- возвращает новый объект приложения
+func NewApp() *App {
+	sf := &App{
+		screen: screen.NewScreen(),
+	}
+	return sf
+}
+
+// Screen -- возвращает объект экрана
+func (sf *App) Screen() types.IScreen {
+	return sf.screen
+}
+
+// Run -- запускает объект приложения в работу
+func (sf *App) Run() {
+
+}

+ 40 - 0
libtui/v0/app/app_test.go

@@ -0,0 +1,40 @@
+package app
+
+import (
+	"testing"
+
+	"p78git.ddns.net/svi/libtui/types"
+)
+
+/*
+	Тест приложения
+*/
+
+// Тестер для объекта приложения
+type tester struct {
+	t    *testing.T
+	app  *App
+	iapp types.IApp
+}
+
+func TestApp(t *testing.T) {
+	test := &tester{
+		t: t,
+	}
+	test.create()
+}
+
+// Создаёт объект приложения
+func (sf *tester) create() {
+	sf.t.Logf("create")
+	sf.app = NewApp()
+	if sf.app == nil {
+		sf.t.Fatalf("create(): app==nil")
+	}
+	sf.iapp = sf.app
+	scr := sf.iapp.Screen()
+	if scr == nil {
+		sf.t.Fatalf("create(): screen==nil")
+	}
+	sf.iapp.Run()
+}

+ 9 - 0
libtui/v0/types/iapp.go

@@ -0,0 +1,9 @@
+package types
+
+// IApp -- объект приложения
+type IApp interface {
+	// Screen -- объект экрана
+	Screen() IScreen
+	// Run -- запускает объект приложения в работу
+	Run()
+}