protected override async Task Context()
        {
            await base.Context();

            _child = new Classification().WithName("child");
        }
 protected override async Task Because()
 {
     _result = await sut.MapToSnapshot(_classification, _context);
 }
        private async Task updateProjectFor <TClassifiable, TSubject>(PKSimProject project, SnapshotClassification snapshot, IReadOnlyCollection <TSubject> subjects, ModelClassification parent = null)
            where TClassifiable : Classifiable <TSubject>, new() where TSubject : IObjectBase
        {
            var classification = await _classificationMapper.MapToModel(snapshot, classificationTypeFor <TClassifiable>());

            classification.Parent = parent;
            project.AddClassification(classification);

            snapshot.Classifiables?.Each(snapshotClassifiable =>
            {
                var subject = subjects.FindByName(snapshotClassifiable);
                if (subject != null)
                {
                    var classifiable    = project.GetOrCreateClassifiableFor <TClassifiable, TSubject>(subject);
                    classifiable.Parent = classification;
                }
            });

            if (snapshot.Classifications != null)
            {
                var tasks = snapshot.Classifications.Select(x => updateProjectFor <TClassifiable, TSubject>(project, x, subjects, classification));
                await Task.WhenAll(tasks);
            }
        }