public void AllMessages_DevidedCorrectly()
        {
            var messages = new[]
            {
                // Track
                _mc.GetTrackMessage(Event, DistinctId, DictionaryWithStringProperty),
                _mc.GetAliasMessage(DistinctId, Alias),

                // Engage
                _mc.GetPeopleSetMessage(DistinctId, DictionaryWithStringProperty),
                _mc.GetPeopleSetOnceMessage(DistinctId, DictionaryWithStringProperty),
                _mc.GetPeopleAddMessage(DistinctId, DictionaryWithStringProperty),
                _mc.GetPeopleAppendMessage(DistinctId, DictionaryWithStringProperty),
                _mc.GetPeopleUnionMessage(DistinctId, DictionaryWithStringProperty),
                _mc.GetPeopleUnsetMessage(DistinctId, StringPropertyArray),
                _mc.GetPeopleDeleteMessage(DistinctId),
                _mc.GetPeopleTrackChargeMessage(DistinctId, DecimalPropertyValue)
            };

            var batchMessage = new BatchMessageWrapper(messages);

            // Check track
            Assert.That(batchMessage.TrackMessages.Count, Is.EqualTo(1));
            var trackMessages = batchMessage.TrackMessages.Single();

            Assert.That(trackMessages.Count, Is.EqualTo(2));

            var trackMessage = trackMessages[0];

            Assert.That(trackMessage.Data[MixpanelProperty.TrackEvent], Is.EqualTo(Event));

            var aliasMessage = trackMessages[1];

            Assert.That(aliasMessage.Data[MixpanelProperty.TrackEvent], Is.EqualTo(MixpanelProperty.TrackCreateAlias));

            // Check engage
            Assert.That(batchMessage.EngageMessages.Count, Is.EqualTo(1));
            var engageMessages = batchMessage.EngageMessages.Single();

            Assert.That(engageMessages.Count, Is.EqualTo(8));
        }