NCheck V4

Paul Hatcher
Posted in Testing, Patterns
I’ve release NCheck V4, largely tidy up and removal of legacy code and changed the framwork to support net472, net48 and netstandard2.0. The dictionary/list checking has been reworked as well so we can get per-element reporting e.g. if we look at the list test fixture we can see which elements are not in alignment, We now get error messages like this… SampleList.Children Count: Expected:<3>. Actual:<2> [1].Id: Expected:<2>. Actual:<4> Useful when you have more than a couple of items in the list.

NCheck V3

Paul Hatcher
Posted in Testing, Patterns
NCheck V3, has just been released, not much change but it does now support net35, net452, net462 and netstandard1.5 and above.

OData Delta Patch Security

Paul Hatcher
Posted in OData
My main project is using OData a lot and one of the requirements was to ensure that certain properties should not be updatable via PATCH - this is to ensure the integrity of the object e.g. audit fields should not be changeable post-hoc. There’s a couple of possibilities, depending on your use case… You want to exclude the changes if they are supplied You want to throw an error if non-editable fields are updated.

Meerkat NameParser

Paul Hatcher
I’ve released a little project Meerkat.NameParser which assists in splitting up personal names into their component parts. This code has been around in one form or another since around 1988 when I wrote the first version in Informix 4GL as part of a project for a client. Subsequent versions were written in Clipper, Visual Basic and this one in C#. It’s not perfect by any means but on projects I’ve used it on we were getting error rates of ~2 per 100K.

Dependency Injection For SpecFlow With Unity 4

Paul Hatcher
Posted in Testing, Integration
One of my current projects is using SpecFlow for testing some complex security logic; there are lots of scenarios so the BDD style of testing is well suited to the problem. I wanted to use the same style of testing for some integration testing where the client is talking to my API but hit a problem of how/where to construct the container as even the client library uses dependency injection to construct itself.