context = &fakes.Context{}
		routeManager = &fakes.RouteManager{}
		context.RouteManagerReturns(routeManager)

		addRoute = commands.AddRoute{
			Interface: "my-interface",
			Destination: net.IPNet{
				IP:   net.ParseIP("192.168.1.1"),
				Mask: net.CIDRMask(24, 32),
			},
			Gateway: net.ParseIP("192.168.1.4"),
		}
	})

	It("uses the route addder to add the route", func() {
		err := addRoute.Execute(context)
		Expect(err).NotTo(HaveOccurred())

		Expect(routeManager.AddRouteCallCount()).To(Equal(1))
		ifName, dest, gw := routeManager.AddRouteArgsForCall(0)
		Expect(ifName).To(Equal("my-interface"))
		Expect(dest.String()).To(Equal("192.168.1.1/24"))
		Expect(gw.String()).To(Equal("192.168.1.4"))
	})

	Context("when adding the route fails", func() {
		BeforeEach(func() {
			routeManager.AddRouteReturns(errors.New("no route for you"))
		})

		It("wraps and propogates the error", func() {