github.com/go-spring/spring-base@v1.1.3/run/run_test.go (about) 1 /* 2 * Copyright 2012-2019 the original author or authors. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * https://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package run 18 19 import ( 20 "os" 21 "testing" 22 23 "github.com/go-spring/spring-base/assert" 24 ) 25 26 func TestSetMode(t *testing.T) { 27 assert.True(t, TestMode()) 28 reset := SetMode(NormalModeFlag) 29 assert.True(t, NormalMode()) 30 assert.False(t, RecordMode()) 31 assert.False(t, ReplayMode()) 32 assert.False(t, TestMode()) 33 reset() 34 assert.False(t, NormalMode()) 35 assert.False(t, RecordMode()) 36 assert.False(t, ReplayMode()) 37 assert.True(t, TestMode()) 38 } 39 40 func TestNormalMode(t *testing.T) { 41 oldArgs := os.Args 42 defer func() { os.Args = oldArgs }() 43 os.Args = nil 44 initMode() 45 assert.True(t, NormalMode()) 46 assert.False(t, RecordMode()) 47 assert.False(t, ReplayMode()) 48 assert.False(t, TestMode()) 49 } 50 51 func TestRecordMode(t *testing.T) { 52 oldArgs := os.Args 53 defer func() { os.Args = oldArgs }() 54 os.Args = nil 55 os.Setenv("GS_RECORD_MODE", "true") 56 defer func() { os.Unsetenv("GS_RECORD_MODE") }() 57 initMode() 58 assert.False(t, NormalMode()) 59 assert.True(t, RecordMode()) 60 assert.False(t, ReplayMode()) 61 assert.False(t, TestMode()) 62 } 63 64 func TestReplayMode(t *testing.T) { 65 oldArgs := os.Args 66 defer func() { os.Args = oldArgs }() 67 os.Args = nil 68 os.Setenv("GS_REPLAY_MODE", "local") 69 defer func() { os.Unsetenv("GS_REPLAY_MODE") }() 70 initMode() 71 assert.False(t, NormalMode()) 72 assert.False(t, RecordMode()) 73 assert.True(t, ReplayMode()) 74 assert.False(t, TestMode()) 75 } 76 77 func TestMustTestMode(t *testing.T) { 78 oldArgs := os.Args 79 defer func() { os.Args = oldArgs }() 80 os.Args = nil 81 assert.Panic(t, func() { 82 MustTestMode() 83 }, "should be called in test mode") 84 }