Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Tests/DaoTests.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Tests/DaoTests.cs	(revision 6431)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Tests/DaoTests.cs	(revision 6452)
@@ -70,4 +70,5 @@
       plugin1.UserId = Guid.Empty;
       plugin1.DateCreated = DateTime.Now;
+      plugin1.Hash = new byte[] { 1, 2, 3 };
 
       DT.PluginData pluginData1 = new DT.PluginData();
@@ -135,4 +136,7 @@
       Assert.AreEqual(null, dao.GetJobData(job1.Id));
       Assert.AreEqual(null, dao.GetHiveExperiment(he.Id));
+
+      dao.DeletePlugin(plugin1.Id);
+      Assert.AreEqual(null, dao.GetPlugin(plugin1.Id));
     }
 
@@ -177,4 +181,5 @@
       plugin1.Version = new Version("1.0.0.0");
       plugin1.UserId = Guid.Empty;
+      plugin1.Hash = new byte[] { 1, 2, 3 };
 
       plugin1.Id = dao.AddPlugin(plugin1);
@@ -186,4 +191,5 @@
       Assert.AreEqual(plugin1.UserId, plugin1loaded.UserId);
       Assert.AreEqual(plugin1.DateCreated.ToString(), plugin1loaded.DateCreated.ToString());
+      Assert.IsTrue(plugin1.Hash.SequenceEqual(plugin1loaded.Hash));
 
       DT.PluginData pluginData1 = new DT.PluginData();
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Tests/Mocks/MockLifecycleManager.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Tests/Mocks/MockLifecycleManager.cs	(revision 6431)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Tests/Mocks/MockLifecycleManager.cs	(revision 6452)
@@ -20,5 +20,4 @@
 #endregion
 
-
 namespace HeuristicLab.Services.Hive.Tests.Mocks {
   public class MockLifecycleManager : ILifecycleManager {
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Tests/Mocks/MockServiceLocator.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Tests/Mocks/MockServiceLocator.cs	(revision 6431)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Tests/Mocks/MockServiceLocator.cs	(revision 6452)
@@ -44,15 +44,13 @@
 
     public ILifecycleManager LifecycleManager {
-      get {
-        return defaultServiceLocator.LifecycleManager;
-      }
+      get { return defaultServiceLocator.LifecycleManager; }
+    }
+    public ITransactionManager TransactionManager {
+      get { return defaultServiceLocator.TransactionManager; }
     }
 
     public HeartbeatManager HeartbeatManager {
-      get {
-        return defaultServiceLocator.HeartbeatManager;
-      }
+      get { return defaultServiceLocator.HeartbeatManager; }
     }
-
   }
 }
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Tests/ServiceTests.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Tests/ServiceTests.cs	(revision 6431)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Tests/ServiceTests.cs	(revision 6452)
@@ -66,4 +66,9 @@
       };
 
+      // delete plugin first (otherwise the system would not allow it because of the same hash code
+      var hash = new byte[] { 1, 2, 3 };
+      var p = service.GetPluginByHash(hash);
+      if (p != null) service.DeletePlugin(p.Id);
+
       // create plugin
       DT.Plugin plugin1 = new DT.Plugin();
@@ -72,5 +77,6 @@
       plugin1.UserId = Guid.Empty;
       plugin1.DateCreated = DateTime.Now;
-
+      plugin1.Hash = hash;
+      
       DT.PluginData pluginData1 = new DT.PluginData();
       pluginData1.FileName = "Tests.MyPlugin-1.0.dll";
@@ -167,6 +173,6 @@
       Assert.AreEqual(job.Id, actions[0].JobId);
 
-      // create appointment which should make slave unavailable for calculation
-      Guid appointmentId = service.AddAppointment(new Appointment { ResourceId = slave.Id, StartDate = DateTime.Now - TimeSpan.FromMinutes(1), EndDate = DateTime.Now + TimeSpan.FromMinutes(1), Recurring = false });
+      // create downtime which should make slave unavailable for calculation
+      Guid downtimeId = service.AddDowntime(new Downtime { ResourceId = slave.Id, StartDate = DateTime.Now - TimeSpan.FromMinutes(1), EndDate = DateTime.Now + TimeSpan.FromMinutes(1), Recurring = false });
 
       progress.Clear();
@@ -177,5 +183,5 @@
       Assert.AreEqual(Guid.Empty, actions[0].JobId);
 
-      service.DeleteAppointment(appointmentId);
+      service.DeleteDowntime(downtimeId);
 
       // delete
