예제 #1
0
        public void SkewbOperationsParser_ParseCommand_ExpectedCount(string command, int count)
        {
            // 1. Prepare
            SkewbOperationsParser p = new SkewbOperationsParser();

            // 2. Execute
            var r = p.Parse(command);

            // 3. Verify
            Assert.NotNull(r);
            Assert.Equal(count, r.Count());
        }
예제 #2
0
        public void SkewbOperationsParser_ParseInvalidCommand_ThrowOperationParsingException(string command, int badIndex)
        {
            // 1. Prepare
            SkewbOperationsParser p = new SkewbOperationsParser();

            // 2. Execute
            Action a = () => p.Parse(command);

            // 3. Verify
            var e = Assert.Throws <OperationParsingException>(a);

            Assert.Equal(command, e.Command);
            Assert.Equal(badIndex, e.Index);
        }
예제 #3
0
        public void SkewbOperationsParser_ParseSingleOperationCheckOrientation_BeExpected(string command)
        {
            // 1. Prepare
            SkewbOperationsParser p = new SkewbOperationsParser();

            // 2. Execute
            var parsed        = p.Parse(command);
            var parsedReverse = p.Parse(command + "'");

            // 3. Verify
            Assert.NotNull(parsed);
            Assert.NotNull(parsedReverse);
            Assert.Single(parsed);
            Assert.Single(parsedReverse);
            Assert.True(parsed.Cast <SkewbOperation>().FirstOrDefault().IsClockwise);
            Assert.False(parsedReverse.Cast <SkewbOperation>().FirstOrDefault().IsClockwise);
        }