Skip to content

Instantly share code, notes, and snippets.

Ruben Bartelink bartelink

Block or report user

Report or block bartelink

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View gist:8720521
public static TRes Match<T,TRes>(this FSharpOption<T> opt, Func<T,TRes> some, Func<TRes> none)
if (FSharpOption<T>.get_IsSome(opt))
return some.Invoke(opt.Value);
return none.Invoke();
bartelink / WarmupCustomization.fs
Created Feb 5, 2014
F# wrapper for having AutoFixture perform post-processing on AutoFixture Specimens of a given type
View WarmupCustomization.fs
type TypeThatIsARequestSpecification<'T>() =
interface IRequestSpecification with
member this.IsSatisfiedBy request =
match request with
| :? System.Type as requestType -> typeof<'T>.IsAssignableFrom( requestType)
| _ -> false
type PrepareSpecimenCommand<'T>( action) =
interface ISpecimenCommand with
member this.Execute( specimen, context) =
let instance = specimen :?> 'T
bartelink / AutoControllerData.fs
Created Mar 21, 2014
Port of C# equivalent in SO answer by @nikosbaxevanis :-
View AutoControllerData.fs
module WebApi2Helpers
// Port of answer by @nikosbaxevanis :-
open System
open Ploeh.AutoFixture
open Ploeh.AutoFixture.Kernel
open Ploeh.AutoFixture.Xunit
open Ploeh.AutoFixture.AutoFoq
open System.Web.Http.Hosting
bartelink / ThesisExample.cs
Created Nov 5, 2010
View ThesisExample.cs
1. uses a ContextFixture (which requires Disposal)
2. keeps all Context/ContextFixture+Do+Assert/Observation in a single Test Method at all costs -- lambdas get very yucky the minute you factor calls to any of these into test methods
3. The TheoryDataProvider junk at the end is also applicable to xUnit [Theory] stuff (and you use the same [ClassData] and friends as one uses for other stuff and just removes some cruft from writing up test cases)
4. uses sut/result/exception standard names
5. This is a sample and has stuff that doesnt scale up that I wouldnt do. e.g. dont use Conditional Logic in tests with care - something as simple as a should succeed / should fail set of cases should generally be two separate Thesis methods
Go look in bitbucket - there's a good set of tests that serve as a better set of samples.
This snippet will self destruct when someone tells me that the acceptance tests and samples in Johannes' fork are clearer and more complete
bartelink / SutContext.cs
Created May 16, 2011
The consumption piece for HackedDisposableTrackingCustomization.cs
View SutContext.cs
static class SutContext
public static SutContext<T> Create<T>()
T sut;
return Create<T>( out sut );
public static SutContext<T> Create<T>( out T sut )
bartelink / Frozen.cs
Created May 16, 2011
AutoFixture Frozen extension relying on Injected Fixture
View Frozen.cs
public class Frozen<T>
readonly T _value;
private Frozen( T t )
_value = t;
public Frozen( Fixture fixture )
bartelink / HackedDisposableTrackingCustomization.cs
Last active Sep 25, 2015
My 'teardown in reverse order' fork of AutoFixture.Kernel.DisposableTrackingCustomization (Current version works against v3.x, initial revision against 2.x)
View HackedDisposableTrackingCustomization.cs
namespace Ploeh.AutoFixture.Forked
class HackedDisposableTrackingCustomization : ICustomization, IDisposable
private readonly DisposableTrackingBehavior behavior;
public HackedDisposableTrackingCustomization()
this.behavior = new DisposableTrackingBehavior();
bartelink / Get-GrepWinClipboardFiles.ps1
Created Jul 4, 2012
Get-GrepWinClipboardFiles. Example: Get-GrepWinClipboardFiles| %{ tf checkout $_ }
View Get-GrepWinClipboardFiles.ps1
function Get-ClipboardText {
$command = {
add-type -an
powershell -sta -noprofile -command $command
function Get-GrepWinClipboardFiles() {
get-ClipboardText | ConvertFrom-Csv -del "`t" | %{ $_.Path+"\"+$_.Name }
bartelink / ClassAutoData.cs
Created Jul 17, 2012
ClassAutoData spiking
View ClassAutoData.cs
[ClassAutoData( typeof( XProvider ) )]
public static void Scenario( X x, string y )
Console.WriteLine( x + "," + y );
public class ClassAutoDataAttribute : CompositeDataAttribute
public ClassAutoDataAttribute( Type @class )
View gist:3377237
static class Program
static void Main()
var x = new { a=0, b=1 };
f( x );
static void f(dynamic x)
You can’t perform that action at this time.