public void Trying_to_update_non_existent_training_fails()
        {
            IRepository sut = new MongoDbRepository(CONNECTIONSTRING);

            Training t = null;
            sut.CreateTraining("sometrainingUpdate2", "sometrainerUpdate2", _ => t = _, null);
            _col.RemoveAll();

            t.TrainerMatchcode = "this change wont make it";

            Exception ex = null;
            sut.UpdateTraining(t, null, _ => ex = _);

            Assert.IsInstanceOf<InvalidOperationException>(ex);
            Console.WriteLine("Exception thrown as expected: {0}", ex.Message);

        }
        public void Update_training()
        {
            IRepository sut = new MongoDbRepository(CONNECTIONSTRING);

            Training t = null;
            sut.CreateTraining("sometrainingUpdate", "sometrainerUpdate", _ => t = _, null);

            t.TrainerMatchcode = "new trainer matchcode";
            sut.UpdateTraining(t, () => Console.WriteLine("Updated training: " + t.Matchcode), null);

            Training result = null;
            sut.LoadTrainingByMatchcode("sometrainingUpdate", _ => result = _, null);
            Assert.AreEqual("new trainer matchcode", result.TrainerMatchcode);
        }