package mockenv import ( "testing" ) /* Тест для отладочных переменных окружения */ // Тестер для переменных окружения type tester struct { t *testing.T me *MockEnv } func TestMockEnv(t *testing.T) { test := &tester{ t: t, } test.create() test.initFake() test.readFile() test.getPairs() test.initLocal() test.stage() } // Плохой STAGE func (sf *tester) stage() { sf.t.Logf("stage()\n") sf.badStage1() sf.badStage2() } // STAGE имеет неизвестное значение func (sf *tester) badStage2() { sf.t.Logf("badStage2()\n") defer func() { if _panic := recover(); _panic == nil { sf.t.Errorf("badStage2(): panic==nil\n") } }() sf.me.dict["STAGE"] = "bad_local" sf.me.checkStage() } // Нет STAGE func (sf *tester) badStage1() { sf.t.Logf("badStage1()\n") defer func() { if _panic := recover(); _panic == nil { sf.t.Errorf("badStage1(): panic==nil\n") } }() delete(sf.me.dict, "STAGE") sf.me.checkStage() } // Локальная инициализация func (sf *tester) initLocal() { sf.initLocalBad1() sf.initLocalBad2() sf.initLocalBad3() sf.initLocalBad4() sf.initLocalGood1() sf.me.Unset() } func (sf *tester) initLocalGood1() { if err := sf.me.InitLocal(); err != nil { sf.t.Errorf("initLocalGood1(): err=\n\t%v\n", err) } } // Вообще нет STAGE func (sf *tester) initLocalBad4() { _fileEnv := fileEnv fileEnv = "./test_data/env_bad2" if err := sf.me.InitLocal(); err == nil { sf.t.Errorf("initLocalBad4(): err==nil\n") } fileEnv = _fileEnv } // Кривое значение STAGE func (sf *tester) initLocalBad3() { _fileEnv := fileEnv fileEnv = "./test_data/env_bad1" if err := sf.me.InitLocal(); err == nil { sf.t.Errorf("initLocalBad3(): err==nil\n") } fileEnv = _fileEnv } // Кривое содержимое файла func (sf *tester) initLocalBad2() { _fileEnv := fileEnv fileEnv = "./test_data/env_bad" if err := sf.me.InitLocal(); err == nil { sf.t.Errorf("initLocalBad2(): err==nil\n") } fileEnv = _fileEnv } // Кривое имя файла func (sf *tester) initLocalBad1() { _fileEnv := fileEnv fileEnv = "4" if err := sf.me.InitLocal(); err == nil { sf.t.Errorf("initLocalBad1(): err==nil\n") } fileEnv = _fileEnv } // Получение пар значений func (sf *tester) getPairs() { sf.getPairsBad1() sf.getPairsBad2() sf.getPairsBad3() sf.getPairsBad4() sf.getPairsGood1() } func (sf *tester) getPairsGood1() { dict, err := sf.me.getPairs("\nPARAM=\"123\"\nPARAM2=\"param2\"\n") if err != nil { sf.t.Errorf("getPairsGood1(): err=\n\t%v\n", err) } if dict == nil { sf.t.Errorf("getPairsGood1(): dict == nil\n") } } // Кривая пара func (sf *tester) getPairsBad4() { dict, err := sf.me.getPairs("\nPARAM=\"=\"=\"\"\nPARAM2=\"param2\"\n") if err == nil { sf.t.Errorf("getPairsBad4(): err==nil\n") } if dict != nil { sf.t.Errorf("getPairsBad4(): dict != nil\n") } } // Кривое значение func (sf *tester) getPairsBad3() { dict, err := sf.me.getPairs("\nPARAM=\"\"\nPARAM2=\"param2\"\n") if err == nil { sf.t.Errorf("getPairsBad3(): err==nil\n") } if dict != nil { sf.t.Errorf("getPairsBad3(): dict != nil\n") } } // Кривой ключ func (sf *tester) getPairsBad2() { dict, err := sf.me.getPairs("\n=\"param\"\nPARAM2=\"param2\"\n") if err == nil { sf.t.Errorf("getPairsBad2(): err==nil\n") } if dict != nil { sf.t.Errorf("getPairsBad2(): dict != nil\n") } } // Пустой текст func (sf *tester) getPairsBad1() { dict, err := sf.me.getPairs("\n\n\n") if err == nil { sf.t.Errorf("getPairsBad1(): err==nil\n") } if dict != nil { sf.t.Errorf("getPairsBad1(): dict != nil\n") } } // Чтение файла переменных окружения func (sf *tester) readFile() { sf.readFileBad1() sf.readFileBad2() sf.readFileBad3() sf.readFileGood1() } func (sf *tester) readFileGood1() { strData, err := sf.me.readFile() if err != nil { sf.t.Errorf("readFileGood1(): err=\n\t%v\n", err) } if strData == "" { sf.t.Errorf("readFileGood1(): strData is empty\n") } } // Кривой путь-2 func (sf *tester) readFileBad3() { _selfPath := selfPath selfPath = "me/" strData, err := sf.me.readFile() if err == nil { sf.t.Errorf("readFileBad3(): err==nil\n") } if strData != "" { sf.t.Errorf("readFileBad3(): strData not empty\n") } selfPath = _selfPath } // Неправильное имя файла func (sf *tester) readFileBad2() { _fileEnv := fileEnv fileEnv = "" strData, err := sf.me.readFile() if err == nil { sf.t.Errorf("readFileBad2(): err==nil\n") } if strData != "" { sf.t.Errorf("readFileBad2(): strData not empty\n") } fileEnv = _fileEnv } // Кривой путь func (sf *tester) readFileBad1() { _selfPath := selfPath selfPath = "#" strData, err := sf.me.readFile() if err == nil { sf.t.Errorf("readFileBad1(): err==nil\n") } if strData != "" { sf.t.Errorf("readFileBad1(): strData not empty\n") } selfPath = _selfPath } // Иницилизация фейковыми данными func (sf *tester) initFake() { sf.me.InitFake() } // Создание объекта переменных окружения func (sf *tester) create() { sf.me = NewMockEnv() if sf.me == nil { sf.t.Errorf("create(): mockEnv is nil\n") } if sf.me.dict == nil { sf.t.Errorf("create(): dict env is nil") } if len_ := len(sf.me.dict); len_ != 0 { sf.t.Errorf("create(): len dict(%v)!=0\n", len_) } }