public void TestVMAPAdBreaksSetSerializerSerializeAdBreaksSet()
        {
            ISerializeAdBreaksSet vmapSerializer = new VMAPAdBreaksSetSerializer();
            var timeOffsets   = testContextInstance.DataRow["TimeOffsets"].ToString().Split(new string[] { "|" }, StringSplitOptions.None);
            var positionTypes = testContextInstance.DataRow["PositionTypes"].ToString().Split(new string[] { "|" }, StringSplitOptions.None);
            var positionIds   = testContextInstance.DataRow["PositionIds"].ToString().Split(new string[] { "|" }, StringSplitOptions.None);
            var vastVersions  = testContextInstance.DataRow["VASTVersions"].ToString().Split(new string[] { "|" }, StringSplitOptions.None);
            var inputDatas    = testContextInstance.DataRow["InputDatas"].ToString().Split(new string[] { "|" }, StringSplitOptions.None);
            var events        = testContextInstance.DataRow["events"].ToString().Split(new string[] { "|" }, StringSplitOptions.None);

            var extensionStrings = testContextInstance.DataRow["Extensions"].ToString().Split(new string[] { "|" }, StringSplitOptions.None);

            var adBreaks = new Dictionary <DataModels.AdPositionReleaseInfo, string>();

            for (int i = 0; i < timeOffsets.Length; i++)
            {
                var timeOffset           = timeOffsets[i];
                var positionType         = positionTypes[i];
                var positionId           = positionIds[i];
                var vastVersion          = vastVersions[i];
                var inputData            = inputDatas[i];
                var trackingEventStrings = events[i].Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
                var trackingEvents       = new Dictionary <string, string>();
                foreach (var trackingEventString in trackingEventStrings)
                {
                    var keyValuePair = trackingEventString.Split(new string[] { "\\" }, StringSplitOptions.RemoveEmptyEntries);
                    trackingEvents[keyValuePair[0]] = keyValuePair[1];
                }

                adBreaks.Add(new DataModels.AdPositionReleaseInfo()
                {
                    TimeOffset = timeOffset, PositionType = (Lorn.ADSP.Common.DataModels.AdPositionType) int.Parse(positionType), AdPositionId = new Guid(positionId), VASTVersion = float.Parse(vastVersion), TrackingEvents = trackingEvents
                }, inputData);
            }

            var extensions = new Dictionary <string, string>();

            foreach (var extensionString in extensionStrings)
            {
                var keyValuePair = extensionString.Split(new string[] { ":" }, StringSplitOptions.RemoveEmptyEntries);
                extensions[keyValuePair[0]] = keyValuePair[1];
            }

            var output = vmapSerializer.SerializeAdBreaksSet(adBreaks, extensions);

            Assert.AreEqual(testContextInstance.DataRow["Output"], output);
        }
        public void TestVMAPAdBreaksSetSerializerSerializeAdBreaksSet()
        {
            ISerializeAdBreaksSet vmapSerializer = new VMAPAdBreaksSetSerializer();
            var timeOffsets = testContextInstance.DataRow["TimeOffsets"].ToString().Split(new string[] { "|" }, StringSplitOptions.None);
            var positionTypes = testContextInstance.DataRow["PositionTypes"].ToString().Split(new string[] { "|" }, StringSplitOptions.None);
            var positionIds = testContextInstance.DataRow["PositionIds"].ToString().Split(new string[] { "|" }, StringSplitOptions.None);
            var vastVersions = testContextInstance.DataRow["VASTVersions"].ToString().Split(new string[] { "|" }, StringSplitOptions.None);
            var inputDatas = testContextInstance.DataRow["InputDatas"].ToString().Split(new string[] { "|" }, StringSplitOptions.None);
            var events = testContextInstance.DataRow["events"].ToString().Split(new string[] { "|" }, StringSplitOptions.None);

            var extensionStrings = testContextInstance.DataRow["Extensions"].ToString().Split(new string[] { "|" }, StringSplitOptions.None);

            var adBreaks = new Dictionary<DataModels.AdPositionReleaseInfo, string>();
            for (int i = 0; i < timeOffsets.Length; i++)
            {
                var timeOffset = timeOffsets[i];
                var positionType = positionTypes[i];
                var positionId = positionIds[i];
                var vastVersion = vastVersions[i];
                var inputData = inputDatas[i];
                var trackingEventStrings = events[i].Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
                var trackingEvents = new Dictionary<string, string>();
                foreach (var trackingEventString in trackingEventStrings)
                {
                    var keyValuePair = trackingEventString.Split(new string[] { "\\" }, StringSplitOptions.RemoveEmptyEntries);
                    trackingEvents[keyValuePair[0]] = keyValuePair[1];
                }

                adBreaks.Add(new DataModels.AdPositionReleaseInfo() { TimeOffset = timeOffset, PositionType = (Lorn.ADSP.Common.DataModels.AdPositionType)int.Parse(positionType), AdPositionId = new Guid(positionId), VASTVersion = float.Parse(vastVersion), TrackingEvents = trackingEvents }, inputData);
            }

            var extensions = new Dictionary<string, string>();
            foreach (var extensionString in extensionStrings)
            {
                var keyValuePair = extensionString.Split(new string[] { ":" }, StringSplitOptions.RemoveEmptyEntries);
                extensions[keyValuePair[0]] = keyValuePair[1];
            }

            var output = vmapSerializer.SerializeAdBreaksSet(adBreaks, extensions);
            Assert.AreEqual(testContextInstance.DataRow["Output"], output);

        }