Пример #1
0
        public void StartCannotBeCalledTwice()
        {
            var exploitState = new ExploitState
            {
                Id        = 1,
                Exploited = ExploitStatus.NotStarted,
                Value     = null
            };
            var exploit = new Mock <IExploitRunner>();

            var exploitRunners = new IExploitRunner[]
            {
                exploit.Object
            };

            // On construction
            var sut = new ExploitsOrchestrator(exploitRunners);

            // Started
            sut.Start();

            var ex = Assert.Throws <InvalidOperationException>(() =>
                                                               sut.Start()
                                                               );

            Assert.Contains("Unable to restart exploits - can only be run once", ex.Message);
        }
Пример #2
0
        public void GoesThroughExpectedStates()
        {
            var exploitState = new ExploitState
            {
                Id        = 1,
                Exploited = ExploitStatus.NotStarted,
                Value     = null
            };
            var exploit = new Mock <IExploitRunner>();

            exploit.Setup(x => x.Start()).Callback(() =>
            {
                exploitState.Exploited = ExploitStatus.Running;
            });
            exploit.Setup(x => x.CurrentState).Returns(
                exploitState
                );

            var exploitRunners = new IExploitRunner[]
            {
                exploit.Object
            };

            // On construction
            var sut = new ExploitsOrchestrator(exploitRunners);

            Assert.False(sut.Started);
            Assert.False(sut.Finished);
            Assert.Equal(ExploitStatus.NotStarted, sut.GetExploitStates().ToArray()[0].Exploited);

            // Started
            sut.Start();
            Assert.True(sut.Started);
            Assert.False(sut.Finished);
            Assert.Equal(ExploitStatus.Running, sut.GetExploitStates().ToArray()[0].Exploited);

            // Finished
            // Started
            exploitState.Exploited = ExploitStatus.Successful;
            exploitState.Value     = "Secret1234";
            Assert.True(sut.Started);
            Assert.True(sut.Finished);
            Assert.Equal(ExploitStatus.Successful, sut.GetExploitStates().ToArray()[0].Exploited);
            Assert.Equal("Secret1234", sut.GetExploitStates().ToArray()[0].Value);
        }