Skip to content

Instantly share code, notes, and snippets.

View laurentkempe's full-sized avatar
🚀
❤✨

Laurent Kempé laurentkempe

🚀
❤✨
View GitHub Profile
module Fake.NDepend
open Fake
open System
open System.IO
open System.Text
let getWorkingDir workingDir =
Seq.find isNotNullOrEmpty [workingDir; environVar("teamcity.build.workingDir"); "."]
|> Path.GetFullPath
<!DOCTYPE html>
<html>
<head>
<title>D3.xml Example</title>
<script type="text/javascript" src="http://mbostock.github.com/d3/d3.v2.js"></script>
<style type="text/css">
.chart div {
font: 10px sans-serif;
background-color: steelblue;
text-align: right;
@laurentkempe
laurentkempe / gist:10648289
Created April 14, 2014 13:33
NancyModule
public class Router : NancyModule, IRouter
{
public Router()
: base("/")
{
Get["test"] = x => "hello";
}
public void HttpGet(string path, Func<dynamic, dynamic> action)
{
Get[path] = x => action;
@laurentkempe
laurentkempe / gist:5643528
Created May 24, 2013 13:32
NDepend find all methods using a setter of a class
let setters = Types.WithFullName("NDepend.Attributes.CodeRuleAttribute").ChildMethods()
.Where(m => m.IsPropertySetter)
from m in Methods.UsingAny(setters)
select new { m, settersCalled = m.MethodsCalled.Intersect(setters) }
@laurentkempe
laurentkempe / gist:5319365
Created April 5, 2013 13:45
Fluent interface to test MVVMLight Messenger
[Test, RequiresSTA]
public void DeleteBrickCommand_BrickSelected_ExpectEnableMainWindowMessageSentWithFalseThenTrue()
{
//Arrange
var productViewModel = makeProductViewModel();
var brick = productViewModel.AddBrick();
var rootGraphSourceViewModel = new RootGraphSourceViewModel();
rootGraphSourceViewModel.Initialize(productViewModel);
rootGraphSourceViewModel.Show();
@laurentkempe
laurentkempe / gist:4117094
Created November 20, 2012 10:07
Using Thread.Sleep() in unit test! A good idea?
[Test]
public void Execute_ImportSuccessFulWithoutModifiedText_ExpectNoModelChangedMessageSent()
{
//Arrange
var importCommand = makeImportAllTextsCommand(new ImportStatistics {ImportedCount = 0});
var messageSent = false;
Messenger.Default.Register<ModelChangedMessage>(this, message => messageSent = true);
//Act
@laurentkempe
laurentkempe / gist:4089419
Created November 16, 2012 17:53
Fluent interface to test INotifyPropertyChanged, MVVMLight messaging with composition
[Test]
public void ValueRangeType_SetToAValueWithOneValueRangeValueSelected_ExpectPropertyChangedFiredValueSetAndModelChangedMessageSent()
{
//Arrange
var viewModel = makeValueRangeViewModel();
var valueViewModel = viewModel.AddValue("value");
valueViewModel.IsSelected = true;
//Act
//Assert
@laurentkempe
laurentkempe / gist:4065637
Created November 13, 2012 12:58
Fluent interface to test INotifyPropertyChanged sample usage
[Test]
public void BusinessUnit_SetToAValue_ExpectedPropertyChangedFired()
{
//Arrange
//Act
//Assert
_viewModel.Should()
.FirePropertyChangedOn(s => s.BusinessUnit)
.When(s => s.BusinessUnit = "Test2");
var mouseDowns = Observable.FromEventPattern<MouseButtonEventHandler, MouseButtonEventArgs>(h => MouseDown += h, h => MouseDown -= h);
var mouseUps = Observable.FromEventPattern<MouseButtonEventHandler, MouseButtonEventArgs>(h => MouseUp += h, h => MouseUp -= h);
mouseDowns.Merge(mouseUps).WhenAny() .Subscribe(OneMouseUp);
}
private void OneMouseUp(EventPattern<MouseButtonEventArgs> eventPattern)
{
var windowUnderCursor = NativeMethods.GetWindowUnderMouse();
@laurentkempe
laurentkempe / gist:2562466
Created April 30, 2012 20:36
Github hubot script for appHarbor service hook integration
module.exports = (robot) ->
robot.router.post "/hubot/appharbor", (req, res) ->
robot.logger.info "Message received for appharbor"
builtApplicationName = req.body.application.name
buildStatus = req.body.build.status
robot.logger.info "AppHarbor build '#{buildStatus}' for application: '#{builtApplicationName}'"
user = robot.userForId 'broadcast'