public async Task Invalid() { var contractResolver = new DefaultContractResolver { NamingStrategy = new SnakeCaseNamingStrategy() }; var settings = new JsonSerializerSettings { ContractResolver = contractResolver }; var svc = new ExcelRowTypeValidatorOnAnnotations(); var order = new Order { Number = "Number", Customer = "A very long customer name that will fail the validation" }; //var order = new Order { Number = "Number", Customer = "customer" , Weight = new Weight()}; var item1 = new Item { Name = "first item with a very long text", Quantity = 4 }; var item2 = new Item { Name = "", Quantity = 10 }; var Other1 = new Other { Prop1 = "property 1" }; var Other2 = new Other { Prop1 = "property 2" }; var orderSerialized = JsonConvert.SerializeObject(order, settings); var item1Serialized = JsonConvert.SerializeObject(item1, settings); var item2Serialized = JsonConvert.SerializeObject(item2, settings); var Other1Serialized = JsonConvert.SerializeObject(Other1, settings); var Other2Serialized = JsonConvert.SerializeObject(Other2, settings); var Item1Row = new Mock <IExcelRowParsed>(); var Item2Row = new Mock <IExcelRowParsed>(); var Other1Row = new Mock <IExcelRowParsed>(); var Other2Row = new Mock <IExcelRowParsed>(); var ItemSheet = new Mock <ISheet>(); var OtherSheet = new Mock <ISheet>(); ItemSheet.Setup(s => s.Name).Returns("items"); OtherSheet.Setup(s => s.Name).Returns("other_data"); Item1Row.Setup(r => r.RowAsData).Returns(item1Serialized); Item1Row.Setup(r => r.Sheet).Returns(ItemSheet.Object); Item2Row.Setup(r => r.RowAsData).Returns(item2Serialized); Item2Row.Setup(r => r.Sheet).Returns(ItemSheet.Object); Other1Row.Setup(r => r.RowAsData).Returns(Other1Serialized); Other1Row.Setup(r => r.Sheet).Returns(OtherSheet.Object); Other2Row.Setup(r => r.RowAsData).Returns(Other2Serialized); Other2Row.Setup(r => r.Sheet).Returns(OtherSheet.Object); var row = new Mock <IExcelRowParsed>(); row.Setup(r => r.RowAsData).Returns(orderSerialized); var related = new IExcelRowParsed[] { Item1Row.Object, Item2Row.Object, Other1Row.Object, Other2Row.Object }; var request = new Mock <ExcelRowValidateOnTypeRequest>(); request.Setup(r => r.OnType).Returns(typeof(Order)); request.Setup(r => r.Row).Returns(row.Object); request.Setup(r => r.RelatedRows).Returns(related); var result = await svc.Validate(request.Object); Assert.AreEqual(false, result.IsValid); }
public async Task Basic() { var settings = JsonUtil.GetSettings(JsonNamingStrategy.SnakeCase); var svc = new ExcelRowTypeValidatorOnAnnotations(); var order = new Order { Number = "Number" }; var item1 = new Item { Name = "first", Quantity = 4 }; var item2 = new Item { Name = "second", Quantity = 10 }; var Other1 = new Other { Prop1 = "property 1" }; var Other2 = new Other { Prop1 = "property 2" }; var orderSerialized = JsonConvert.SerializeObject(order, settings); var item1Serialized = JsonConvert.SerializeObject(item1, settings); var item2Serialized = JsonConvert.SerializeObject(item2, settings); var Other1Serialized = JsonConvert.SerializeObject(Other1, settings); var Other2Serialized = JsonConvert.SerializeObject(Other2, settings); var Item1Row = new Mock <IExcelRowParsed>(); var Item2Row = new Mock <IExcelRowParsed>(); var Other1Row = new Mock <IExcelRowParsed>(); var Other2Row = new Mock <IExcelRowParsed>(); var ItemSheet = new Mock <ISheet>(); var OtherSheet = new Mock <ISheet>(); ItemSheet.Setup(s => s.Name).Returns("items"); OtherSheet.Setup(s => s.Name).Returns("other_data"); Item1Row.Setup(r => r.RowAsData).Returns(item1Serialized); Item1Row.Setup(r => r.Sheet).Returns(ItemSheet.Object); Item2Row.Setup(r => r.RowAsData).Returns(item2Serialized); Item2Row.Setup(r => r.Sheet).Returns(ItemSheet.Object); Other1Row.Setup(r => r.RowAsData).Returns(Other1Serialized); Other1Row.Setup(r => r.Sheet).Returns(OtherSheet.Object); Other2Row.Setup(r => r.RowAsData).Returns(Other2Serialized); Other2Row.Setup(r => r.Sheet).Returns(OtherSheet.Object); var row = new Mock <IExcelRowParsed>(); row.Setup(r => r.RowAsData).Returns(orderSerialized); var related = new IExcelRowParsed[] { Item1Row.Object, Item2Row.Object, Other1Row.Object, Other2Row.Object }; var request = new Mock <ExcelRowValidateOnTypeRequest>(); request.Setup(r => r.OnType).Returns(typeof(Order)); request.Setup(r => r.Row).Returns(row.Object); request.Setup(r => r.RelatedRows).Returns(related); var result = await svc.Validate(request.Object); Assert.AreEqual(true, result.IsValid); }