public async Task PutTest()
		{
			var device = new Device()
			{
				Name = "Device 1",
				Description = "Device Description",
				DisplayOrder = 1,
				DateCreated = DateTime.Now,
			};

			var device2 = new Device()
			{
				Name = "Device 2",
				Description = "Device Description",
				DisplayOrder = 2,
				DateCreated = DateTime.Now
			};
			using (IDataContext context = new MockDataContext())
			{
				using (var controller = new DevicesController(context))
				{
					context.Devices.Add(device);
					context.Devices.Add(device2);
					await context.SaveChangesAsync();

					var newDevice = new Device()
					{
						Id = device.Id,
						Name = "Test Device 1",
						Description = "Test Description 1",
						DisplayOrder = 3,
						DateCreated = DateTime.Now.AddDays(-200)
					};
					await controller.Put(newDevice);

					var actual = context.Devices.FirstOrDefault(i => i.Id == device.Id);
					Assert.AreEqual(newDevice.Name, actual.Name, "Name was not updated");
					Assert.AreEqual(newDevice.Description, actual.Description, "Description was not updated");
					Assert.AreEqual(newDevice.DisplayOrder, actual.DisplayOrder, "Display Order was not updated");
					Assert.AreEqual(device.DateCreated, actual.DateCreated, "DateCreated was updated and should not have been");

					newDevice = new Device()
					{
						Id = device2.Id,
						Name = "Test Device2",
						Description = "Test Description 2",
						DisplayOrder = 1,
						DateCreated = DateTime.Now.AddDays(-201)
					};
					await controller.Put(newDevice);
					actual = context.Devices.FirstOrDefault(i => i.Id == device2.Id);
					Assert.AreEqual(newDevice.Name, actual.Name, "Name was not updated");
					Assert.AreEqual(newDevice.Description, actual.Description, "Description was not updated.");
					Assert.AreEqual(newDevice.DisplayOrder, actual.DisplayOrder, "Display Order was not updated.");
					Assert.AreEqual(device2.DateCreated, actual.DateCreated, "DateCreated was updated and should not have been");

					newDevice = new Device()
					{
						Id = 500,
						Name = "Failed Update",
						Description = "Failed Update"
					};
					Assert.ThrowsAsync<KeyNotFoundException>(async () => await controller.Put(newDevice));
				}
			}
		}