示例#1
0
        public void Given_Topics_With_Same_Name_When_Start_Then_Exception()
        {
            var    voting = new Voting();
            Action action = () => voting.Start("DEV", "DEV");

            Assert.ThrowsAny <ArgumentException>(action);
        }
示例#2
0
        public void Given_One_Topic_When_Start_Then_Exception()
        {
            var    voting = new Voting();
            Action action = () => voting.Start("DEV");

            Assert.ThrowsAny <InvalidOperationException>(action);
        }
示例#3
0
        public void Given_Null_Topics_When_Start_Then_Exception()
        {
            var    voting = new Voting();
            Action action = () => voting.Start(null);

            Assert.ThrowsAny <ArgumentNullException>(action);
        }
示例#4
0
        public void Finish_Testing()
        {
            var voting = new Voting();

            voting.Start("C#", "Java");
            voting.Vote("C#");
            var votingState = voting.Finish();

            Assert.Equal("C#", votingState.Winner);
        }
示例#5
0
        public void Given_StartedVoting_When_Vote_ForNotValid_Topic_Then_Exception()
        {
            var voting = new Voting();

            voting.Start("DEV", "OPS");

            Action action = () => voting.Vote("DEVOPS");

            Assert.ThrowsAny <InvalidOperationException>(action);
        }
示例#6
0
        public void StarVoting_Test()
        {
            var voting      = new Voting();
            var votingState = voting.Start("C#", "Java");

            Assert.Equal(new Dictionary <string, int> {
                { "C#", 0 },
                { "Java", 0 }
            },
                         votingState.Votes);
        }
示例#7
0
        public void Given_Topics_When_Start_Then_Voting_With_Votes_Created()
        {
            var voting = new Voting();

            voting.Start("DEV", "OPS");
            Assert.Equal(voting.Votes, new Dictionary <string, int>
            {
                { "DEV", 0 },
                { "OPS", 0 }
            });
        }
示例#8
0
        public void Vote_Test()
        {
            var voting = new Voting();

            voting.Start("C#", "Java");
            voting.Vote("C#");

            Assert.Equal(new Dictionary <string, int> {
                { "C#", 1 },
                { "Java", 0 },
            }, voting.Votes);
        }
示例#9
0
        public void Given_StartedVoting_When_Finish_With_Same_Votes_Then_Exception()
        {
            var voting = new Voting();

            voting.Start("DEV", "OPS");
            voting.Vote("DEV");
            voting.Vote("OPS");

            Action action = () => voting.Finish();

            Assert.ThrowsAny <InvalidOperationException>(action);
        }
示例#10
0
        public void Given_StartedVoting_When_Finish_Then_Winner()
        {
            var voting = new Voting();

            voting.Start("DEV", "OPS");
            voting.Vote("DEV");
            voting.Vote("DEV");
            voting.Vote("OPS");

            voting.Finish();

            Assert.Equal("DEV", voting.Winner);
        }
示例#11
0
        public void Given_StartedVoting_When_Vote_Then_VoteCreated()
        {
            var voting = new Voting();

            voting.Start("DEV", "OPS");

            voting.Vote("DEV");
            Assert.Equal(voting.Votes, new Dictionary <string, int>()
            {
                { "DEV", 1 },
                { "OPS", 0 }
            });
        }
示例#12
0
 public async Task <object> Start([FromBody] string[] topics) =>
 await ExecuteCommand(() => _voting.Start(topics));
示例#13
0
 public object Post([FromBody] string[] values)
 {
     _logger.LogInformation("Starting Voting");
     _voting.Start(values);
     return(_voting.GetState());
 }