public void ClassificationChanged()
{
var fullSpan = Utils.CreateSpan("Some text");
var span1 = new SnapshotSpan(fullSpan.Snapshot, new Span(0, 4));
var span2 = new SnapshotSpan(fullSpan.Snapshot, new Span(5, 4));
var classifier1 = new StubIClassifier();
var classifier2 = new StubIClassifier();
var invokes = new List<Tuple<Object, ClassificationChangedEventArgs>>();
var aggregator = new ClassifiersAggregator(classifier1, classifier2);
// Check for no exception
classifier1.ClassificationChangedEvent?.Invoke(classifier1, new ClassificationChangedEventArgs(span1));
aggregator.ClassificationChanged += (sender, e) => invokes.Add(Tuple.Create(sender, e));
classifier1.ClassificationChangedEvent?.Invoke(classifier1, new ClassificationChangedEventArgs(span1));
Assert.AreEqual(1, invokes.Count);
Assert.AreEqual(classifier1, invokes[0].Item1);
Assert.AreEqual(span1, invokes[0].Item2.ChangeSpan);
invokes.Clear();
classifier2.ClassificationChangedEvent?.Invoke(classifier2, new ClassificationChangedEventArgs(span2));
Assert.AreEqual(1, invokes.Count);
Assert.AreEqual(classifier2, invokes[0].Item1);
Assert.AreEqual(span2, invokes[0].Item2.ChangeSpan);
}