public void SerializeChangeSetTest( AggregateVersion version, TodoTaskCreated taskCreated, TodoTaskMoved taskMoved) { // arrange var changeSet = new ChangeSet(version, new IDomainEvent[] { taskCreated, taskMoved }); // act var serializedChangeSet = JObject.Parse(_serializer.SerializeChangeSet(changeSet)); // assert Assert.Equal((int)changeSet.FromVersion, serializedChangeSet["fromVersion"]); var serializedClrTypes = (JArray)serializedChangeSet["changeClrTypes"]; Assert.Equal(typeof(TodoTaskCreated).AssemblyQualifiedName, serializedClrTypes[0]); Assert.Equal(typeof(TodoTaskMoved).AssemblyQualifiedName, serializedClrTypes[1]); var serializedChanges = (JArray)serializedChangeSet["changes"]; var serializedTaskCreated = serializedChanges[0]; Assert.Equal(taskCreated.TaskId.Id, (int)serializedTaskCreated["taskId"]); Assert.Equal(taskCreated.ProjectId.Id, (int)serializedTaskCreated["projectId"]); var serializedTaskMoved = serializedChanges[1]; Assert.Equal(taskMoved.TaskId.Id, (int)serializedTaskMoved["taskId"]); Assert.Equal(taskMoved.NewProjectId.Id, (int)serializedTaskMoved["newProjectId"]); Assert.Equal(taskMoved.OldProjectId.Id, (int)serializedTaskMoved["oldProjectId"]); }
public void DeserializeChangeSetTest( AggregateVersion version, TodoTaskCreated taskCreated, TodoTaskMoved taskMoved) { // arrange var changeSet = new ChangeSet(version, new IDomainEvent[] { taskCreated, taskMoved }); var serializedChangeSet = _serializer.SerializeChangeSet(changeSet); // act var restoredChangeSet = _serializer.DeserializeChangeSet(serializedChangeSet); // assert Assert.Equal(changeSet.FromVersion, restoredChangeSet.FromVersion); Assert.Equal(changeSet.ToVersion, restoredChangeSet.ToVersion); var restoredTaskCreated = restoredChangeSet.Changes[0] as TodoTaskCreated; Assert.NotNull(restoredTaskCreated); Assert.Equal(taskCreated.TaskId, restoredTaskCreated.TaskId); Assert.Equal(taskCreated.ProjectId, restoredTaskCreated.ProjectId); var restoredTaskMoved = restoredChangeSet.Changes[1] as TodoTaskMoved; Assert.NotNull(restoredTaskMoved); Assert.Equal(taskMoved.TaskId, restoredTaskMoved.TaskId); Assert.Equal(taskMoved.NewProjectId, restoredTaskMoved.NewProjectId); Assert.Equal(taskMoved.OldProjectId, restoredTaskMoved.OldProjectId); }
public void WhenTaskMoved_UpdatesProjectId(TodoTaskMoved taskMoved) { // act _state.When(taskMoved); // assert Assert.NotNull(_state.ProjectId); Assert.Equal(taskMoved.NewProjectId, _state.ProjectId); }