示例#1
0
        public void GetRightOperand_ShouldBeNumberWord_WhenInputInRange()
        {
            captcha = new _Captcha(patternDummy, leftOperandDummy, operatorValueDummy, 1);
            Assert.AreEqual("ONE", captcha.GetRightOperand());

            captcha = new _Captcha(patternDummy, leftOperandDummy, operatorValueDummy, 2);
            Assert.AreEqual("TWO", captcha.GetRightOperand());

            captcha = new _Captcha(patternDummy, leftOperandDummy, operatorValueDummy, 3);
            Assert.AreEqual("THREE", captcha.GetRightOperand());

            captcha = new _Captcha(patternDummy, leftOperandDummy, operatorValueDummy, 4);
            Assert.AreEqual("FOUR", captcha.GetRightOperand());

            captcha = new _Captcha(patternDummy, leftOperandDummy, operatorValueDummy, 5);
            Assert.AreEqual("FIVE", captcha.GetRightOperand());

            captcha = new _Captcha(patternDummy, leftOperandDummy, operatorValueDummy, 6);
            Assert.AreEqual("SIX", captcha.GetRightOperand());

            captcha = new _Captcha(patternDummy, leftOperandDummy, operatorValueDummy, 7);
            Assert.AreEqual("SEVEN", captcha.GetRightOperand());

            captcha = new _Captcha(patternDummy, leftOperandDummy, operatorValueDummy, 8);
            Assert.AreEqual("EIGHT", captcha.GetRightOperand());

            captcha = new _Captcha(patternDummy, leftOperandDummy, operatorValueDummy, 9);
            Assert.AreEqual("NINE", captcha.GetRightOperand());
        }
示例#2
0
        public void GetRightOperand_ShouldThrowArgumentOutOfRangeException_WhenInputIsOutOfRange()
        {
            captcha = new _Captcha(patternDummy, leftOperandDummy, operatorValueDummy, 0);
            Assert.Throws <ArgumentOutOfRangeException>(() => captcha.GetRightOperand());

            captcha = new _Captcha(patternDummy, leftOperandDummy, operatorValueDummy, 10);
            Assert.Throws <ArgumentOutOfRangeException>(() => captcha.GetRightOperand());
        }
示例#3
0
        public void Operator_ShouldThrowArgumentOutOfRangeException_WhenInputIsOutOfRange()
        {
            captcha = new _Captcha(patternDummy, leftOperandDummy, 0, rightOperandDummy);
            Assert.Throws <ArgumentOutOfRangeException>(() => captcha.GetOperator());

            captcha = new _Captcha(patternDummy, leftOperandDummy, 4, rightOperandDummy);
            Assert.Throws <ArgumentOutOfRangeException>(() => captcha.GetOperator());
        }
示例#4
0
        public void CaptchaWithMatchingStepOne(string input, int expected)
        {
            var captcha = new Captcha.Captcha(input);

            var result = captcha.CalculateCaptchaWithEqualityStep(1);

            result.Should().Be(expected);
        }
示例#5
0
        public void CaptchaWithMatchingStepOfHalfOfLength(string input, int expected)
        {
            var captcha = new Captcha.Captcha(input);
            var step    = captcha.CaptchaLength / 2;

            var result = captcha.CalculateCaptchaWithEqualityStep(step);

            result.Should().Be(expected);
        }
        protected async Task CheckIfCorrectParamsSendAndResultReturned(
            Captcha.Captcha captcha,
            Dictionary <string, string> parameters
            )
        {
            var files = new Dictionary <string, FileInfo>();

            await CheckIfCorrectParamsSendAndResultReturned(captcha, parameters, files);
        }
        protected async Task CheckIfCorrectParamsSendAndResultReturned(
            Captcha.Captcha captcha,
            Dictionary <string, string> parameters,
            Dictionary <string, FileInfo> files
            )
        {
            string apiKey    = "API_KEY";
            string captchaId = "123";
            string code      = "2763";

            parameters["key"] = apiKey;

            var resParameters = new Dictionary <string, string>();

            resParameters["action"] = "get";
            resParameters["id"]     = captchaId;
            resParameters["key"]    = apiKey;


            var apiClientMock = new Mock <ApiClient>();

            apiClientMock
            .Setup(ac => ac.In(It.IsAny <Dictionary <string, string> >(), It.IsAny <Dictionary <string, FileInfo> >()))
            .Returns(Task.FromResult("OK|" + captchaId));
            apiClientMock
            .Setup(ac => ac.Res(resParameters))
            .Returns(Task.FromResult("OK|" + code));

            TwoCaptcha solver = new TwoCaptcha(apiKey);

            solver.PollingInterval = 1;
            solver.SetApiClient(apiClientMock.Object);

            await solver.Solve(captcha);

            apiClientMock.Verify(ac => ac.In(
                                     It.Is <Dictionary <string, string> >(actual => ParametersAreSame(parameters, actual)),
                                     It.Is <Dictionary <string, FileInfo> >(actual => FilesAreSame(files, actual))
                                     ));

            Assert.AreEqual(captchaId, captcha.Id);
            Assert.AreEqual(code, captcha.Code);
        }
示例#8
0
 public void Operator_ShouldBePlus_WhenInputIs1()
 {
     captcha = new _Captcha(patternDummy, leftOperandDummy, 1, rightOperandDummy);
     Assert.AreEqual("+", captcha.GetOperator());
 }
示例#9
0
 public void GetLeftOperand_ShouldBe9_WhenInputIs9()
 {
     captcha = new _Captcha(patternDummy, 9, operatorValueDummy, rightOperandDummy);
     Assert.AreEqual("9", captcha.GetLeftOperand());
 }
示例#10
0
 public void GetCaptcha_ShouldBe7MinusEIGHT_WhenPatternIs2_LeftOperandIs7_OperatorIs3_RightOperandIs8()
 {
     captcha = new _Captcha(2, 7, 3, 8);
     Assert.AreEqual("7 - EIGHT", captcha.GetCaptcha());
 }
示例#11
0
 public void GetCaptcha_ShouldBeTWOMultiply4_WhenPatternIs1_LeftOperandIs2_OperatorIs2_RightOperandIs4()
 {
     captcha = new _Captcha(1, 2, 2, 4);
     Assert.AreEqual("TWO * 4", captcha.GetCaptcha());
 }
示例#12
0
 public void GetCaptcha_ShouldBeONEPlus1_WhenPatternIs1_LeftOperandIs1_OperatorIs1_RightOperandIs1()
 {
     captcha = new _Captcha(1, 1, 1, 1);
     Assert.AreEqual("ONE + 1", captcha.GetCaptcha());
 }
示例#13
0
 public void GetLeftOperand_ShouldBeONE_WhenPatternIs1_And_InputIs1()
 {
     captcha = new _Captcha(1, 1, operatorValueDummy, rightOperandDummy);
     Assert.AreEqual("ONE", captcha.GetLeftOperand());
 }
示例#14
0
 public void GetRightOperand_ShouldBe2_WhenPatternIs1_And_InputIs2()
 {
     captcha = new _Captcha(1, leftOperandDummy, operatorValueDummy, 2);
     Assert.AreEqual("2", captcha.GetRightOperand());
 }
示例#15
0
 public void Operator_ShouldBeMultiply_WhenInputIs2()
 {
     captcha = new _Captcha(patternDummy, leftOperandDummy, 2, rightOperandDummy);
     Assert.AreEqual("*", captcha.GetOperator());
 }