public void UpsertTaskShouldAddNewTask() { //arrange var sut = CreateLogic(); var ctx = A.Fake<ITaskListContext>(); A.CallTo(() => contextFactory.Create()) .Returns(ctx); var task = new Task() { Description = "New Test Task", TaskType = TaskType.Social }; A.CallTo(() => ctx.Tasks.Add(task)) .Invokes(call => { (call.Arguments.First() as Task).TaskId = 5; }); //act sut.UpsertTask(task); //assert Assert.AreEqual(5, task.TaskId); }
public TaskView(Task task) { this.taskId = task.TaskId; this.description = task.Description; this.createDate = task.CreateDate; this.taskType = task.TaskType; this.taskTypeName = task.TaskType.ToFriendlyString(); }
public HttpResponseMessage Post(Task task) { var result = new ApiResult(); try { logic.UpsertTask(task); result.SetSavedSuccess("task", new TaskView(task)); } catch { result.SetSavedFailed("task"); //TODO: Log failure and exception } return Request.CreateResponse(result); }
public void UpsertTask(Task task) { using (var ctx = contextFactory.Create()) { if (task.TaskId == 0) { task.CreateDate = DateTime.Now; ctx.Tasks.Add(task); } else { var currentTask = ctx.Tasks.SingleOrDefault(t => t.TaskId == task.TaskId); if (currentTask == null) throw new RecordNotFoundException<Task>(task.TaskId); //'last in wins' concurrency currentTask.Description = task.Description; currentTask.TaskType = task.TaskType; } ctx.SaveChanges(); } }
public HttpResponseMessage Put(Task task) { //follows upsert semantic > put only exists for RESTful correctness return Post(task); }
public void UpsertTaskShouldThrowWithNotFoundTask() { //arrange var sut = CreateLogic(); var task = new Task() { TaskId = 55, Description = "Test Task 1 Update", TaskType = TaskType.Social }; //act sut.UpsertTask(task); }
public void UpsertTaskShouldUpdateExistingTask() { //arrange var sut = CreateLogic(); var task = new Task() { TaskId = 1, Description = "Test Task 1 Update", TaskType = TaskType.Social }; //act sut.UpsertTask(task); //assert Assert.AreEqual(task.Description, tasks.Single(t => t.TaskId == 1).Description); }