예제 #1
0
        public void Execute_StringToInt32_Itself()
        {
            string obj      = "10";
            var    args     = new LiteralScalarResolverArgs(obj);
            var    resolver = new LiteralScalarResolver <decimal>(args);

            Assert.That(resolver.Execute(), Is.EqualTo(Int32.Parse(obj)));
        }
예제 #2
0
        public void Execute_DecimalToInt_Itself()
        {
            decimal obj      = new decimal(10);
            var     args     = new LiteralScalarResolverArgs(obj);
            var     resolver = new LiteralScalarResolver <int>(args);

            Assert.That(resolver.Execute(), Is.EqualTo(obj));
        }
예제 #3
0
        public void Execute_String_Itself()
        {
            var obj      = "My name is Cédric";
            var args     = new LiteralScalarResolverArgs(obj);
            var resolver = new LiteralScalarResolver <string>(args);

            Assert.That(resolver.Execute(), Is.EqualTo("My name is Cédric"));
        }
예제 #4
0
        public void Execute_DoubleToDecimal_Itself()
        {
            double obj      = 10.0;
            var    args     = new LiteralScalarResolverArgs(obj);
            var    resolver = new LiteralScalarResolver <decimal>(args);

            Assert.That(resolver.Execute(), Is.EqualTo(obj));
        }
예제 #5
0
        public void Execute_StringToDateTime_Itself()
        {
            var obj      = "2017-11-13 07:05:00";
            var args     = new LiteralScalarResolverArgs(obj);
            var resolver = new LiteralScalarResolver <DateTime>(args);

            Assert.That(resolver.Execute(), Is.EqualTo(DateTime.Parse(obj)));
        }
예제 #6
0
        public void Execute_DateTime_Itself()
        {
            var obj      = new DateTime(2017, 11, 13, 7, 5, 0);
            var args     = new LiteralScalarResolverArgs(obj);
            var resolver = new LiteralScalarResolver <DateTime>(args);

            Assert.That(resolver.Execute(), Is.EqualTo(obj));
        }
예제 #7
0
        public void Execute_StringToPercentage_Double()
        {
            var obj      = "10%";
            var args     = new LiteralScalarResolverArgs(obj);
            var resolver = new LiteralScalarResolver <Percentage>(args);

            Assert.That(resolver.Execute().Value, Is.EqualTo(0.1));
        }
예제 #8
0
        public void Compare_ResolverToInt_CorrectResult(int x, int y)
        {
            var args     = new LiteralScalarResolverArgs(x);
            var resolver = new LiteralScalarResolver <int>(args);

            var comparer = new ScalarComparer <int>();

            Assert.That(comparer.Compare(resolver, y), Is.EqualTo(x.CompareTo(y)));
        }
예제 #9
0
        public void Execute_StringToDecimal_Itself(string culture)
        {
            var currentCulture = Thread.CurrentThread.CurrentCulture;

            Thread.CurrentThread.CurrentCulture = new CultureInfo(culture);
            string obj      = "10.0";
            var    args     = new LiteralScalarResolverArgs(obj);
            var    resolver = new LiteralScalarResolver <decimal>(args);

            Assert.That(resolver.Execute(), Is.EqualTo(decimal.Parse(obj, NumberFormatInfo.InvariantInfo)));
            Thread.CurrentThread.CurrentCulture = currentCulture;
        }
예제 #10
0
        public void Execute_OneParameter_CorrectResponse()
        {
            var baseUrl   = new LiteralScalarResolver <string>("https://api.agify.io/");
            var parameter = new ParameterRest(
                new LiteralScalarResolver <string>("name"),
                new LiteralScalarResolver <string>("cedric")
                );
            var engine = new RestEngine(new Anonymous(), baseUrl, null, new[] { parameter }, null, null);
            var result = engine.Execute();

            Assert.That(result, Does.StartWith("{\"name\":\"cedric\",\"age\":"));
        }
예제 #11
0
        public void Compare_ResolverToResolver_CorrectResult(int x, int y)
        {
            var xArgs     = new LiteralScalarResolverArgs(x);
            var xResolver = new LiteralScalarResolver <int>(xArgs);

            var yArgs     = new LiteralScalarResolverArgs(y);
            var yResolver = new LiteralScalarResolver <int>(yArgs);

            var comparer = new ScalarComparer <int>();

            Assert.That(comparer.Compare(xResolver, yResolver), Is.EqualTo(x.CompareTo(y)));
        }
예제 #12
0
        public void Compare_NumericWithinRange_Failure(ComparerType comparerType, object x, object y)
        {
            var predicate = new Mock <ReferencePredicateArgs>();

            predicate.SetupGet(p => p.ColumnType).Returns(ColumnType.Numeric);
            predicate.SetupGet(p => p.ComparerType).Returns(comparerType);
            var resolver = new LiteralScalarResolver <string>(y);

            predicate.SetupGet(p => p.Reference).Returns(resolver);

            var factory  = new PredicateFactory();
            var comparer = factory.Instantiate(predicate.Object);

            Assert.That(comparer.Execute(x), Is.False);
        }
예제 #13
0
        public void Compare_Boolean_Success(ComparerType comparerType, object x, object y)
        {
            var predicate = new Mock <ReferencePredicateArgs>();

            predicate.SetupGet(p => p.ColumnType).Returns(ColumnType.Boolean);
            predicate.SetupGet(p => p.ComparerType).Returns(comparerType);
            var resolver = new LiteralScalarResolver <bool>(y);

            predicate.SetupGet(p => p.Reference).Returns(resolver);

            var factory  = new PredicateFactory();
            var comparer = factory.Instantiate(predicate.Object);

            Assert.That(comparer.Execute(x), Is.True);
        }
예제 #14
0
        public void Compare_DateTimeRange_Success(string range)
        {
            var predicate = new Mock <ReferencePredicateArgs>();

            predicate.SetupGet(p => p.ColumnType).Returns(ColumnType.DateTime);
            predicate.SetupGet(p => p.ComparerType).Returns(ComparerType.WithinRange);
            var resolver = new LiteralScalarResolver <string>(range);

            predicate.SetupGet(p => p.Reference).Returns(resolver);

            var factory  = new PredicateFactory();
            var comparer = factory.Instantiate(predicate.Object);

            Assert.That(comparer.Execute(new DateTime(2015, 8, 1)), Is.True);
        }
예제 #15
0
        public void Compare_NonNumeric_Exception(ComparerType comparerType, object x, object y)
        {
            var predicate = new Mock <ReferencePredicateArgs>();

            predicate.SetupGet(p => p.ColumnType).Returns(ColumnType.Numeric);
            predicate.SetupGet(p => p.ComparerType).Returns(comparerType);
            var resolver = new LiteralScalarResolver <decimal>(y);

            predicate.SetupGet(p => p.Reference).Returns(resolver);

            var factory  = new PredicateFactory();
            var comparer = factory.Instantiate(predicate.Object);

            Assert.Throws <ArgumentException>(() => comparer.Execute(x));
        }
예제 #16
0
        public void Compare_Text_Failure(ComparerType comparerType, object x, object y)
        {
            var predicate = new Mock <CaseSensitivePredicateArgs>();

            predicate.SetupGet(p => p.ColumnType).Returns(ColumnType.Text);
            predicate.SetupGet(p => p.ComparerType).Returns(comparerType);
            var resolver = new LiteralScalarResolver <string>(y);

            predicate.SetupGet(p => p.Reference).Returns(resolver);
            predicate.SetupGet(p => p.StringComparison).Returns(StringComparison.InvariantCulture);

            var factory  = new PredicateFactory();
            var comparer = factory.Instantiate(predicate.Object);

            Assert.That(comparer.Execute(x), Is.False);
        }
예제 #17
0
        public void Compare_Numeric_Failure(ComparerType comparerType, object x, object sop, object reference)
        {
            var predicate = new Mock <SecondOperandPredicateArgs>();

            predicate.SetupGet(p => p.ColumnType).Returns(ColumnType.Numeric);
            predicate.SetupGet(p => p.ComparerType).Returns(comparerType);
            var resolver = new LiteralScalarResolver <decimal>(reference);

            predicate.SetupGet(p => p.Reference).Returns(resolver);
            predicate.SetupGet(p => p.SecondOperand).Returns(sop);

            var factory  = new PredicateFactory();
            var comparer = factory.Instantiate(predicate.Object);

            Assert.That(comparer.Execute(x), Is.False);
        }
예제 #18
0
        public void Execute_Segments_CorrectResponse()
        {
            var baseUrl = new LiteralScalarResolver <string>("https://verse.pawelad.xyz/");
            var path    = new LiteralScalarResolver <string>("/projects/{project}/");
            var segment = new SegmentRest(
                new LiteralScalarResolver <string>("project"),
                new LiteralScalarResolver <string>("jekyll")
                );
            var parameter = new ParameterRest(
                new LiteralScalarResolver <string>("format"),
                new LiteralScalarResolver <string>("json")
                );
            var engine = new RestEngine(new Anonymous(), baseUrl, path, new[] { parameter }, new[] { segment }, null);
            var result = engine.Execute();

            Assert.That(result, Does.StartWith("{\"latest\":"));
        }
예제 #19
0
        public void Execute_PathAndParameters_CorrectResponse()
        {
            var baseUrl    = new LiteralScalarResolver <string>("https://api.publicapis.org/");
            var path       = new LiteralScalarResolver <string>("entries");
            var parameter1 = new ParameterRest(
                new LiteralScalarResolver <string>("category"),
                new LiteralScalarResolver <string>("animals")
                );
            var parameter2 = new ParameterRest(
                new LiteralScalarResolver <string>("https"),
                new LiteralScalarResolver <string>("true")
                );
            var engine = new RestEngine(new Anonymous(), baseUrl, path, new[] { parameter1, parameter2 }, null, null);
            var result = engine.Execute();

            Assert.That(result.Length, Is.GreaterThan(20));
            Assert.That(result, Does.StartWith("{\"count\":"));
        }