Skip to content

Instantly share code, notes, and snippets.

View jonfuller's full-sized avatar

Jon Fuller jonfuller

View GitHub Profile
public class EventTracker<TDelegate>
where TDelegate : class
{
public static implicit operator TDelegate( EventTracker<TDelegate> tracker )
{
return tracker.Delegate;
}
public EventTracker()
{
[Test]
public void LameTest()
{
var objectWithEvent = new ClassWithEvent();
var awesomeFired = false;
objectWithEvent.AwesomeEvent += ( o, e ) => awesomeFired = true;
objectWithEvent.DoSomethingAwesome();
@jonfuller
jonfuller / gist:180472
Created September 3, 2009 19:05
Not as lame, still lame
[Test]
public void LessLameTest()
{
var objectWithEvent = new ClassWithEvent();
var awesomeCount = 0;
objectWithEvent.AwesomeEvent += ( o, e ) => awesomeCount++;
objectWithEvent.DoSomethingAwesome();
@jonfuller
jonfuller / gist:180475
Created September 3, 2009 19:08
Awesome
[Test]
public void AwesomeTest()
{
var objectWithEvent = new ClassWithEvent();
var awesomeTracker = new EventTracker<EventHandler>();
objectWithEvent.AwesomeEvent += awesomeTracker.Delegate;
objectWithEvent.DoSomethingAwesome();
@jonfuller
jonfuller / watchr.rb
Created September 23, 2009 19:59
A watcher script
require 'autotest.rb'
watch( '^.*UnitTest.*.cs$' ) do |match|
run_test(match.to_s)
end
@jonfuller
jonfuller / autotest.rb
Created September 23, 2009 20:00
Corresponding autotest file for the watchr script
require 'rexml/document'
def build(test_project)
`msbuild /nologo #{test_project}`
end
def mstest(test_container, test_results_file, tests_to_run)
tests_to_run = ([""] << tests_to_run).flatten
File.delete(test_results_file) if File.exists?(test_results_file)
@jonfuller
jonfuller / Response.cs
Created May 27, 2010 13:10
Response/Option
public class Response<T>
{
public static implicit operator bool(Response<T> response)
{
return response.Success;
}
public bool Success { get; private set; }
public T Value { get; private set; }
public Response(bool success, T value)
public class SyncData<TResult>
{
public TResult Result { get; set; }
public SyncData(TResult result)
{
Result = result;
}
}
namespace Scratch
{
public class Tester
{
public class Taco<T>
{
public T Filling { get; set; }
public Taco(T value)
{
namespace Scratch
{
public class Tester
{
public class Taco<T>
{
public T Filling { get; set; }
public Taco(T value)
{