예제 #1
0
        public void WhenCreateAndRetrieve_ReturnsNewObject()
        {
            TestStateManager manager = new TestStateManager();
            var obj = manager.GetObject <DummyObj>();

            obj.Should().NotBeNull();
            obj.State.Should().BeNull();
        }
예제 #2
0
        protected Scenario()
        {
            var firstRun = !AlreadyRanDelegates.TryGetValue(GetType(), out _testStateManager);

            if (firstRun)
            {
                _testStateManager = new TestStateManager(this);
                var initializer = new TestInitializer(this, _testStateManager);
                initializer.ProcessDelegates();

                AlreadyRanDelegates.TryAdd(GetType(), _testStateManager);
            }
        }
예제 #3
0
        public void WhenStoringAndRetrieving_ReturnsSameObject()
        {
            TestStateManager manager = new TestStateManager();
            var obj = new DummyObj()
            {
                State = "test"
            };

            manager.AddObject(obj);
            var returnedObj = manager.GetObject <DummyObj>();

            returnedObj.Should().Be(obj);
            returnedObj.State.Should().Be("test");
        }
예제 #4
0
        public void SetUp()
        {
            test    = new Test("my test");
            service = new TestConverter();

            listener1 = MockRepository.GenerateMock <ITestStateListener>();
            listener2 = MockRepository.GenerateMock <ITestStateListener>();
            listener3 = MockRepository.GenerateMock <ITestStateListener>();

            manager = new TestStateManager(service, test);

            manager.RegisterListener(listener1);
            manager.RegisterListener(listener2);
            manager.RegisterListener(listener3);
        }
예제 #5
0
        public void Setup()
        {
            _testStateManager = new TestStateManager(this);
            var initializer = new TestInitializer(this, _testStateManager);

            //todo: there needs to be a common way to ignore setup for scenarios where all tests are ignored.  this sucks.
            if (!GetType().GetMethods().Any(y => new DefaultTestRunnerConfiguration().ThenIdentificationMethod(y) &&
                                            !y.GetCustomAttributes(typeof(IgnoreAttribute), true).Any()))
            {
                return;
            }

            initializer.ProcessDelegates();
            _testStateManager.WriteSpecification();
        }
예제 #6
0
        public void WhenObjectIsRetrievedTwice_ReturnsSameObject()
        {
            TestStateManager manager = new TestStateManager();
            var obj = new DummyObj()
            {
                State = "test"
            };

            manager.AddObject(obj);
            var returnedObj1 = manager.GetObject <DummyObj>();
            var returnedObj2 = manager.GetObject <DummyObj>();

            returnedObj1.Should().Be(obj);
            returnedObj2.Should().Be(obj);
            returnedObj1.State.Should().Be("test");
            returnedObj2.State.Should().Be("test");
        }
예제 #7
0
        public void WhenObjectIsStoredTwice_OverwritesObject()
        {
            TestStateManager manager = new TestStateManager();
            var obj = new DummyObj()
            {
                State = "test"
            };
            var obj2 = new DummyObj()
            {
                State = "test2"
            };

            manager.AddObject(obj);
            manager.AddObject(obj2);
            var returnedObj = manager.GetObject <DummyObj>();

            returnedObj.Should().Be(obj2);
            returnedObj.State.Should().Be("test2");
        }
예제 #8
0
        public void SetUp()
        {
            test    = new Test("my test");
            service = MockRepository.GenerateMock <ITestConverter>();

            listener1 = MockRepository.GenerateMock <ITestStateListener>();
            source    = MockRepository.GenerateMock <ITestStateListener>();
            listener3 = MockRepository.GenerateMock <ITestStateListener>();

            manager = new TestStateManager(service, test);

            manager.RegisterListener(listener1);
            manager.RegisterListener(source);
            manager.RegisterListener(listener3);

            theNewJson = "{new: 'json'}";

            manager.StoreJson(theNewJson, source);
        }
예제 #9
0
        public void SetUp()
        {
            test    = new Test("my test");
            service = MockRepository.GenerateMock <ITestConverter>();

            listener1 = MockRepository.GenerateMock <ITestStateListener>();
            source    = MockRepository.GenerateMock <ITestStateListener>();
            listener3 = MockRepository.GenerateMock <ITestStateListener>();

            manager = new TestStateManager(service, test);

            manager.RegisterListener(listener1);
            manager.RegisterListener(source);
            manager.RegisterListener(listener3);

            theNewJson = "{new: 'json'}";

            service.Expect(x => x.ToJson(test)).Return(theNewJson);

            manager.Version(source);
        }
예제 #10
0
        public void SetUp()
        {
            test    = new Test("my test");
            service = MockRepository.GenerateMock <ITestConverter>();

            listener1 = MockRepository.GenerateMock <ITestStateListener>();
            listener2 = MockRepository.GenerateMock <ITestStateListener>();
            listener3 = MockRepository.GenerateMock <ITestStateListener>();

            manager = new TestStateManager(service, test);

            manager.RegisterListener(listener1);
            manager.RegisterListener(listener2);
            manager.RegisterListener(listener3);

            theOriginalJson = "{old: 'json'}";
            theNewJson      = "{new: 'json'}";

            service.Expect(x => x.ToJson(test)).Return(theOriginalJson);
            service.Expect(x => x.ToJson(test)).Return(theNewJson);


            manager = new TestStateManager(service, test);
            // setting the pre-condition here
            manager.CurrentJson.ShouldEqual(theOriginalJson);

            manager.Version(null);
            // second version of the JSON
            manager.CurrentJson.ShouldEqual(theNewJson);

            manager.RecordSnapshot();
            manager.IsDirty().ShouldBeFalse();

            manager.RegisterListener(listener1);
            manager.RegisterListener(listener2);
            manager.RegisterListener(listener3);

            // After all that, undo
            manager.Undo.Execute(null);
        }
	public override void OnInspectorGUI ()
	{
		instance = target as TestStateManager;

		GUIStyle StringStyle = new GUIStyle();
		StringStyle.alignment = TextAnchor.MiddleCenter;
		StringStyle.fontSize = 15;

		//現在の登録さている状態を表示
		EditorGUILayout.LabelField("---Current States---",StringStyle);
		EditorGUILayout.Space();

		base.OnInspectorGUI();

		//状態を追加
		if(GUILayout.Button("Add New State")){
			AddStateWindow window = (AddStateWindow)EditorWindow.GetWindow (typeof(AddStateWindow));
			window.position = new Rect(500,250,250,200);
			window.ShowUtility();
		}

		EditorGUILayout.LabelField(name);
	}
예제 #12
0
        public static void ClassInitialize(TestContext testContext)
        {
            stateManager = new TestStateManager<IrcClientTestState>();

            // Create IRC clients.
            ircClient1 = new IrcClient();
#if DEBUG
            ircClient1.ClientId = "1";
#endif
            ircClient1.FloodPreventer = new IrcStandardFloodPreventer(4, 2000);
            ircClient1.Connected += ircClient1_Connected;
            ircClient1.ConnectFailed += ircClient1_ConnectFailed;
            ircClient1.Disconnected += ircClient1_Disconnected;
            ircClient1.Error += ircClient1_Error;
            ircClient1.ProtocolError += ircClient1_ProtocolError;
            ircClient1.Registered += ircClient1_Registered;
            ircClient1.MotdReceived += ircClient1_MotdReceived;
            ircClient1.NetworkInformationReceived += ircClient1_NetworkInformationReceived;
            ircClient1.ServerVersionInfoReceived += ircClient1_ServerVersionInfoReceived;
            ircClient1.ServerTimeReceived += ircClient1_ServerTimeReceived;
            ircClient1.ServerLinksListReceived += ircClient1_ServerLinksListReceived;
            ircClient1.ServerStatsReceived += ircClient1_ServerStatsReceived;
            ircClient1.WhoReplyReceived += ircClient1_WhoReplyReceived;
            ircClient1.WhoIsReplyReceived += ircClient1_WhoIsReplyReceived;
            ircClient1.WhoWasReplyReceived += ircClient1_WhoWasReplyReceived;
            ircClient1.ChannelListReceived += ircClient1_ChannelListReceived;

            ircClient2 = new IrcClient();
#if DEBUG
            ircClient2.ClientId = "2";
#endif
            ircClient2.Connected += ircClient2_Connected;
            ircClient2.ConnectFailed += ircClient2_ConnectFailed;
            ircClient2.Disconnected += ircClient2_Disconnected;
            ircClient2.Error += ircClient2_Error;
            ircClient2.ProtocolError += ircClient2_ProtocolError;
            ircClient2.Registered += ircClient2_Registered;

            // Create CTCP clients over IRC clients.
            ctcpClient1 = new CtcpClient(ircClient1);
            ctcpClient1.ClientVersion = clientVersionInfo;
            ctcpClient1.PingResponseReceived += ctcpClient1_PingResponseReceived;
            ctcpClient1.VersionResponseReceived += ctcpClient1_VersionResponseReceived;
            ctcpClient1.TimeResponseReceived += ctcpClient1_TimeResponseReceived;
            ctcpClient1.ActionReceived += ctcpClient1_ActionReceived;

            ctcpClient2 = new CtcpClient(ircClient2);
            ctcpClient2.ClientVersion = clientVersionInfo;
            ctcpClient2.PingResponseReceived += ctcpClient2_PingResponseReceived;
            ctcpClient2.VersionResponseReceived += ctcpClient2_VersionResponseReceived;
            ctcpClient2.TimeResponseReceived += ctcpClient2_TimeResponseReceived;
            ctcpClient2.ActionReceived += ctcpClient2_ActionReceived;

            // Initialize wait handles for all events.
            GetAllWaitHandlesFields().ForEach(fieldInfo => fieldInfo.SetValue(null, new AutoResetEvent(false)));

            // Nick name length limit on irc.freenode.net is 16 chars.
            Func<string> getRandomUserId = () => Guid.NewGuid().ToString().Substring(0, 8);

            serverPassword = Properties.Resources.ServerPassword;
            if (string.IsNullOrEmpty(serverPassword))
                serverPassword = null;
            nickName1 = userName1 = string.Format(Properties.Resources.NickNameFormat, getRandomUserId());
            nickName2 = userName2 = string.Format(Properties.Resources.NickNameFormat, getRandomUserId());
            realName = Properties.Resources.RealName;

            Debug.WriteLine("Client users have real name '{0}'", realName);
            Debug.WriteLine("Client 1 user has nick name '{0}' and user name '{1}'.", nickName1, userName1);
            Debug.WriteLine("Client 2 user has nick name '{0}' and user name '{1}'.", nickName2, userName2);

            stateManager.SetStates(IrcClientTestState.Client1Initialized, IrcClientTestState.Client2Initialized);
            ircClient1.Connect(Properties.Resources.ServerHostName, false, new IrcUserRegistrationInfo()
                {
                    Password = serverPassword,
                    NickName = nickName1,
                    UserName = userName1,
                    RealName = realName,
                });
            ircClient2.Connect(Properties.Resources.ServerHostName, false, new IrcUserRegistrationInfo()
                {
                    Password = serverPassword,
                    NickName = nickName2,
                    UserName = userName2,
                    RealName = realName,
                });
        }
예제 #13
0
 public static TestEnvironment WithTestStateManager(this TestEnvironment env, TestStateManager value)
 {
     env.TestStateManager.Instance = value;
     return(env);
 }
예제 #14
0
 public void TearDown()
 {
     stateManager = null;
     stateA       = null;
     stateB       = null;
 }
예제 #15
0
 public void Setup()
 {
     stateManager = new TestStateManager();
     stateA       = new TestStateA(stateManager);
     stateB       = new TestStateB(stateManager);
 }