Exemplo n.º 1
0
        public void CanReadArrayMember()
        {
            using (var stream = new MemoryStream())
            {
                WithStruct value1   = new WithStruct(161, 321, 641);
                WithStruct value2   = new WithStruct(162, 322, 642);
                WithStruct value3   = new WithStruct(163, 323, 643);
                WithArray  expected = new WithArray()
                {
                    FixedLegthArray = new[] { value1, value2 },
                    VarLength       = 1,
                    VarLegthArray   = new[] { value3 }
                };
                using (var bw = new BinaryWriter(stream, Encoding.Default, true))
                {
                    expected.WriteTo(bw);
                }
                stream.Position = 0;

                var formatBuilder = Bin.Format()
                                    .Includes <WithArray>(cfg => cfg
                                                          .Read(t => t.FixedLegthArray, acfg => acfg.Length(2))
                                                          .Read(t => t.VarLegthArray, acfg => acfg.Length(ctx => ctx.Object.VarLength)))
                                    .Includes <WithStruct>();

                var format = formatBuilder.Build <WithArray>();
                var actual = format.Read(stream);

                Assert.AreEqual(expected, actual);
            }
        }
Exemplo n.º 2
0
        public int Multiply(WithArray input)
        {
            int multiplyer = 1;

            for (int i = 1; i < input.Numbers.Length; i++)
            {
                multiplyer *= input.Numbers[i];
            }
            return(multiplyer);
        }
        public void GetIndexes_WhenItemWithEnumerableWithOneInt_ReturnsIndexWithInt()
        {
            var item = new WithArray { IntValues = new[] { 42 } };
            var schema = StructureSchemaTestFactory.CreateRealFrom<WithArray>();

            var factory = new StructureIndexesFactory();
            var indexes = factory.CreateIndexes(schema, item, _structureIdGenerator.Invoke()).ToList();

            Assert.AreEqual(42, indexes.Single(i => i.Path == "IntValues").Value);
        }
Exemplo n.º 4
0
        public void Write_WithArray_WritesObjectCorrectly()
        {
            // Arrange
            var tc = new WithArray();

            // Act
            var s = Toml.WriteString(tc);

            // Assert
            Assert.Equal("EmptyArray = []\r\nNonEmptyIntArray = [-100, 0, 100]\r\nStringList = [\"A\", \"B\", \"C\"]\r\n", s);
        }
Exemplo n.º 5
0
        public void Write_WithArray_WritesObjectCorrectly()
        {
            // Arrange
            var tc = new WithArray();

            // Act
            var s = Toml.WriteString(tc);

            // Assert
            Assert.Equal("EmptyArray = []\r\nNonEmptyIntArray = [-100, 0, 100]\r\nStringList = [\"A\", \"B\", \"C\"]\r\n", s);
        }
        public void CreateStructure_WhenItemWithEnumerableWithTwoEqualElements_ReturnsIndexWithStringsAsOneValuedDelimitedString()
        {
            var schema = new AutoSchemaBuilder<WithArray>().CreateSchema();
            var item = new WithArray { Values = new[] { "A", "A" } };

            var builder = new StructureBuilder();
            var structure = builder.CreateStructure(item, schema);

            var indexes = structure.Indexes.ToList();
            Assert.AreEqual("<$A$>", indexes[0].Value);
        }
Exemplo n.º 7
0
        public void GetIndexes_WhenItemWithEnumerableWithOneInt_ReturnsIndexWithInt()
        {
            var item = new WithArray {
                IntValues = new[] { 42 }
            };
            var schema = StructureSchemaTestFactory.CreateRealFrom <WithArray>();

            var factory = new StructureIndexesFactory();
            var indexes = factory.CreateIndexes(schema, item, _structureIdGenerator.Invoke()).ToList();

            Assert.AreEqual(42, indexes.Single(i => i.Path == "IntValues").Value);
        }
Exemplo n.º 8
0
        public void GetIndexes_WhenItemWithEnumerableWithOneString_ReturnsIndexWithString()
        {
            var item = new WithArray {
                StringValues = new[] { "A" }
            };
            var schemaStub = StructureSchemaTestFactory.CreateRealFrom <WithArray>();

            var factory = new StructureIndexesFactory();
            var indexes = factory.CreateIndexes(schemaStub, item).ToList();

            Assert.AreEqual("A", indexes.Single(i => i.Path == "StringValues[0]").Value);
        }
Exemplo n.º 9
0
        public void GetIndexes_WhenItemWithEnumerableWithOneString_ReturnsIndexWithDataTypeOfStringElement()
        {
            var item = new WithArray {
                StringValues = new[] { "A" }
            };
            var schemaStub = StructureSchemaTestFactory.CreateRealFrom <WithArray>();

            var factory = new StructureIndexesFactory();
            var indexes = factory.CreateIndexes(schemaStub, item, _structureIdGenerator.Invoke()).ToList();

            Assert.AreEqual(DataTypeCode.String, indexes.Single(i => i.Path == "StringValues").DataTypeCode);
        }
Exemplo n.º 10
0
        public void GetIndexes_WhenItemWithEnumerableWithOneNullString_ReturnsNullIndex()
        {
            var item = new WithArray {
                StringValues = new string[] { null }
            };
            var schemaStub = StructureSchemaTestFactory.CreateRealFrom <WithArray>();

            var factory = new StructureIndexesFactory();
            var indexes = factory.CreateIndexes(schemaStub, item, _structureIdGenerator.Invoke()).ToList();

            Assert.IsNull(indexes.SingleOrDefault(i => i.Path == "StringValues"));
        }
Exemplo n.º 11
0
        public void GetIndexes_WhenItemWithEnumerableWithOneNullInt_ReturnsNullIndex()
        {
            var item = new WithArray {
                NullableIntValues = new int?[] { null }
            };
            var schemaStub = StructureSchemaTestFactory.CreateRealFrom <WithArray>();

            var factory = new StructureIndexesFactory();
            var indexes = factory.CreateIndexes(schemaStub, item).ToList();

            Assert.IsNull(indexes.SingleOrDefault(i => i.Path == "NullableIntValues"));
        }
        public void CreateStructure_WhenItemWithEnumerable_WillConsumeStringConverter()
        {
            var stringConverterFake = new Mock<IStringConverter>();
            SisoDbEnvironment.StringConverter = stringConverterFake.Object;
            var schema = new AutoSchemaBuilder<WithArray>().CreateSchema();
            var item = new WithArray { Values = new[] { "A", "B" } };

            var builder = new StructureBuilder();
            builder.CreateStructure(item, schema);

            stringConverterFake.Verify(s => s.AsString<object>("A"), Times.Once());
            stringConverterFake.Verify(s => s.AsString<object>("B"), Times.Once());
        }
Exemplo n.º 13
0
        public void GetIndexes_WhenItemWithEnumerableWithTwoEqualElements_ReturnsTwoIntIndexes()
        {
            var item = new WithArray {
                IntValues = new[] { 42, 42 }
            };
            var schemaStub = StructureSchemaTestFactory.CreateRealFrom <WithArray>();

            var factory = new StructureIndexesFactory();
            var indexes = factory.CreateIndexes(schemaStub, item, _structureIdGenerator.Invoke()).ToList();

            Assert.AreEqual(42, indexes[1].Value);
            Assert.AreEqual(42, indexes[2].Value);
        }
Exemplo n.º 14
0
        public void GetIndexes_WhenItemWithEnumerableWithTwoDifferentStrings_ReturnsTwoStringIndexes()
        {
            var item = new WithArray {
                StringValues = new[] { "A", "B" }
            };
            var schemaStub = StructureSchemaTestFactory.CreateRealFrom <WithArray>();

            var factory = new StructureIndexesFactory();
            var indexes = factory.CreateIndexes(schemaStub, item, _structureIdGenerator.Invoke()).ToList();

            Assert.AreEqual("A", indexes[1].Value);
            Assert.AreEqual("B", indexes[2].Value);
        }
Exemplo n.º 15
0
        public void GetIndexes_WhenItemWithEnumerableWithTwoDifferentInts_ReturnsTwoIntIndexes()
        {
            var item = new WithArray {
                IntValues = new[] { 42, 43 }
            };
            var schemaStub = StructureSchemaTestFactory.CreateRealFrom <WithArray>();

            var factory = new StructureIndexesFactory();
            var indexes = factory.CreateIndexes(schemaStub, item).ToList();

            Assert.AreEqual(42, indexes[0].Value);
            Assert.AreEqual(43, indexes[1].Value);
        }
Exemplo n.º 16
0
        public void GetIndexes_WhenItemWithEnumerableWithTwoEqualElements_ReturnsTwoStringIndexes()
        {
            var item = new WithArray {
                StringValues = new[] { "A", "A" }
            };
            var schemaStub = StructureSchemaTestFactory.CreateRealFrom <WithArray>();

            var factory = new StructureIndexesFactory();
            var indexes = factory.CreateIndexes(schemaStub, item).ToList();

            Assert.AreEqual("A", indexes[0].Value);
            Assert.AreEqual("A", indexes[1].Value);
        }
Exemplo n.º 17
0
        public void GetIndexes_WhenItemWithArraysBeingNull_ReturnesNoIndexes()
        {
            var item = new WithArray
            {
                IntValues         = null,
                NullableIntValues = null,
                StringValues      = null
            };

            var schemaStub = StructureSchemaTestFactory.CreateRealFrom <WithArray>();

            var factory = new StructureIndexesFactory();
            var indexes = factory.CreateIndexes(schemaStub, item).ToList();

            indexes.Should().BeEmpty();
        }
Exemplo n.º 18
0
 public IActionResult Arrays([FromBody] WithArray array)
 {
     if (array == null || array.Numbers == null)
     {
         return(Json(new { error = "Please provide a number!" }));
     }
     else
     {
         if (array.What == "sum")
         {
             return(Json(new { result = homeService.Sum(array) }));
         }
         else if (array.What == "multiply")
         {
             return(Json(new { result = homeService.Multiply(array) }));
         }
         //else if (what == "double")
         //{
         //    return Json(new { result = array.Double() });
         //}
     }
     return(Json(new { error = "Please provide an input!" }));
 }
        public void GetIndexes_WhenItemWithEnumerableWithOneNullInt_ReturnsNullIndex()
        {
            var item = new WithArray { NullableIntValues = new int?[] { null } };
            var schemaStub = StructureSchemaTestFactory.CreateRealFrom<WithArray>();

            var factory = new StructureIndexesFactory();
            var indexes = factory.CreateIndexes(schemaStub, item, _structureIdGenerator.Invoke()).ToList();

            Assert.IsNull(indexes.SingleOrDefault(i => i.Path == "NullableIntValues"));
        }
Exemplo n.º 20
0
        public int Sum(WithArray input)
        {
            int summer = input.Numbers.Sum();

            return(summer);
        }
        public void GetIndexes_WhenItemWithEnumerableWithTwoEqualElements_ReturnsTwoStringIndexes()
        {
            var item = new WithArray { StringValues = new[] { "A", "A" } };
            var schemaStub = StructureSchemaTestFactory.CreateRealFrom<WithArray>();

            var factory = new StructureIndexesFactory();
            var indexes = factory.CreateIndexes(schemaStub, item, _structureIdGenerator.Invoke()).ToList();

            Assert.AreEqual("A", indexes[1].Value);
            Assert.AreEqual("A", indexes[2].Value);
        }
        public void GetIndexes_WhenItemWithEnumerableWithTwoDifferentInts_ReturnsTwoIntIndexes()
        {
            var item = new WithArray { IntValues = new[] { 42, 43 } };
            var schemaStub = StructureSchemaTestFactory.CreateRealFrom<WithArray>();

            var factory = new StructureIndexesFactory();
            var indexes = factory.CreateIndexes(schemaStub, item, _structureIdGenerator.Invoke()).ToList();

            Assert.AreEqual(42, indexes[1].Value);
            Assert.AreEqual(43, indexes[2].Value);
        }
        public void GetIndexes_WhenItemWithEnumerableWithOneString_ReturnsIndexWithDataTypeOfStringElement()
        {
            var item = new WithArray { StringValues = new[] { "A" } };
            var schemaStub = StructureSchemaTestFactory.CreateRealFrom<WithArray>();

            var factory = new StructureIndexesFactory();
            var indexes = factory.CreateIndexes(schemaStub, item, _structureIdGenerator.Invoke()).ToList();

            Assert.AreEqual(DataTypeCode.String, indexes.Single(i => i.Path == "StringValues").DataTypeCode);
        }