public override GetRecordingsResponseItem[] GetRecordings() { List <GetRecordingsResponseItem> items = new List <GetRecordingsResponseItem>(); foreach (Search.RecordingInformation info in Search.SearchStorage.Instance.Recordings) { GetRecordingsResponseItem item = new GetRecordingsResponseItem(); item.RecordingToken = info.RecordingToken; item.Configuration = new RecordingConfiguration(); item.Configuration.Source = new RecordingSourceInformation(); item.Configuration.Source.Description = info.Source.Description; item.Configuration.Source.Address = info.Source.Address; item.Configuration.Source.Location = info.Source.Location; item.Configuration.Source.Name = info.Source.Name; item.Configuration.Source.SourceId = info.Source.SourceId; item.Configuration.Content = info.Content; item.Configuration.MaximumRetentionTime = "PT10S"; item.Tracks = new GetTracksResponseList(); List <GetTracksResponseItem> trackItems = new List <GetTracksResponseItem>(); bool first = true; foreach (Search.TrackInformation track in info.Track) { //if (info.RecordingToken.EndsWith("1")) //{ // if (first) // { // first = false; // continue; // } //} GetTracksResponseItem trackItem = new GetTracksResponseItem(); trackItem.TrackToken = track.TrackToken; trackItem.Configuration = new TrackConfiguration(); trackItem.Configuration.Description = track.Description; trackItem.Configuration.TrackType = (TrackType)((int)track.TrackType); //if (info.RecordingToken.EndsWith("2")) //{ // trackItem.Configuration.TrackType = (TrackType)(3-(int)track.TrackType); //} trackItems.Add(trackItem); } item.Tracks.Track = trackItems.ToArray(); items.Add(item); } return(items.ToArray()); }
private bool CompareTracks(GetTracksResponseItem prevTrack, GetTracksResponseItem newTrack, StringBuilder logger) { bool ok = true; if (prevTrack.Configuration.TrackType != newTrack.Configuration.TrackType) { ok = false; logger.Append(string.Format("Track Types of track with token '{0}' are different{1}", prevTrack.TrackToken, Environment.NewLine)); } if (prevTrack.Configuration.Description != newTrack.Configuration.Description) { ok = false; logger.Append(string.Format("Descriptions of track with token '{0}' are different{1}", prevTrack.TrackToken, Environment.NewLine)); } return(ok); }
private void CheckTrackListChanged(GetTracksResponseItem[] prevList, GetTracksResponseItem[] newList, string stepName) { GetTracksResponseItem track = null; StringBuilder logger = new StringBuilder(); bool ok = true; if (prevList == null && newList != null || prevList != null && newList == null) { ok = false; logger.Append("Initial track list was changed"); Assert(ok, logger.ToStringTrimNewLine(), stepName); return; } else if (prevList != null && newList != null) { if (prevList.Length != newList.Length) { ok = false; logger.Append("Initial track list was changed"); Assert(ok, logger.ToStringTrimNewLine(), stepName); } foreach (var item in prevList) { track = newList.FirstOrDefault(t => t.TrackToken == item.TrackToken); if (track == null) { ok = false; logger.Append("Initial track list was changed"); } else { ok &= CompareTracks(item, track, logger); } } } else if (prevList == null && newList == null) { ok = true; } Assert(ok, logger.ToStringTrimNewLine(), stepName); }
private bool CompareRecordingTracks(GetRecordingsResponseItem oldRecording, GetRecordingsResponseItem newRecording, StringBuilder logger) { bool ok = true; GetTracksResponseItem track = null; if (oldRecording.Tracks.Track == null && newRecording.Tracks.Track != null) { ok = false; logger.Append("Initial track list was changed"); return(ok); } else if (oldRecording.Tracks.Track != null && newRecording.Tracks.Track == null) { ok = false; logger.Append("Initial track list was changed"); return(ok); } else if (oldRecording.Tracks.Track == null && newRecording.Tracks.Track == null) { ok = true; return(ok); } if (oldRecording.Tracks.Track.Length != newRecording.Tracks.Track.Length) { ok = false; logger.Append("Initial track list was changed"); return(ok); } foreach (var item in oldRecording.Tracks.Track) { track = newRecording.Tracks.Track.FirstOrDefault(t => t.TrackToken == item.TrackToken); if (track == null) { ok = false; logger.Append("Initial track list was changed"); } else { ok &= CompareTracks(item, track, logger, oldRecording.RecordingToken); } } return(ok); }
private void CheckRecordingTrack(GetTracksResponseItem track, TrackConfiguration conf) { bool ok = true; StringBuilder logger = new StringBuilder(); if (track.Configuration.Description != conf.Description) { ok = false; logger.Append(string.Format("Description is invalid{0}", Environment.NewLine)); } if (track.Configuration.TrackType != conf.TrackType) { ok = false; logger.Append(string.Format("Track type is invalid{0}", Environment.NewLine)); } Assert(ok, logger.ToStringTrimNewLine(), "Check that configuration parameters of new track are valid"); }
private bool CompareTracks(GetTracksResponseItem prevTrack, GetTracksResponseItem newTrack, StringBuilder logger, string recordingToken) { bool ok = true; //ok &= CompareStringFields(prevTrack.Configuration.Description, // newTrack.Configuration.Description, logger, "Recording", string.Format("Track {0} Configuration.Description", prevTrack.TrackToken), recordingToken); if (!CompareStringFields(prevTrack.Configuration.Description, newTrack.Configuration.Description, logger, "Recording", string.Format("Track {0} Configuration.Description", prevTrack.TrackToken), recordingToken)) { ok = false; } if (prevTrack.Configuration.TrackType != newTrack.Configuration.TrackType) { ok = false; logger.Append(string.Format("Track types of track '{0}' in recording '{1}' are different{2}", prevTrack.TrackToken, recordingToken, Environment.NewLine)); } return(ok); }
public void DynamicTrackConfigurationTest() { string recordingToken = string.Empty; string trackTypeStr = string.Empty; string trackToken = string.Empty; bool isTrackDeleted = false; bool isTrackCreated = false; bool isRecordingCreated = false; TrackConfiguration deletedTrackConf = null; RunTest(() => { // A.14 - Selection of Recording for track creation GetRecordingForTrackCreation(out recordingToken, out trackTypeStr, out isRecordingCreated, out isTrackDeleted, out deletedTrackConf); TrackType trackType = (trackTypeStr == "Video" ? TrackType.Video : (trackTypeStr == "Audio" ? TrackType.Audio : (trackTypeStr == "Metadata" ? TrackType.Metadata : TrackType.Extended))); // prepare track configuration var trackConf = new TrackConfiguration(); trackConf.Description = "New Track"; trackConf.TrackType = trackType; // get initial recordings GetRecordingsResponseItem[] recordingsInitial = GetRecordings(); Assert(recordingsInitial != null, "Recording list is empty", "Check that recording list is not empty"); // create track trackToken = CreateTrack(recordingToken, trackConf); isTrackCreated = true; // check that created track token is not presented in selected recording (from initial track list) GetRecordingsResponseItem recordingInitial = recordingsInitial.FirstOrDefault(rec => rec.RecordingToken == recordingToken); GetTracksResponseItem track = null; if (recordingInitial.Tracks.Track != null) { track = recordingInitial.Tracks.Track.FirstOrDefault(t => t.TrackToken == trackToken); } Assert(track == null, String.Format("Track (token = {0}) has already presented in recording (token = {1})", trackToken, recordingToken), String.Format("Check that new track (token = {0}) wasn't presented in recording (token = {1})", trackToken, recordingToken)); // get updated recordings (after CreateTrack) GetRecordingsResponseItem[] recordingsUpdated = GetRecordings(); Assert(recordingsUpdated != null, "Recording list is empty", "Check that recording list is not empty"); // check that created track token is presented in selected recording (from updated track list) GetRecordingsResponseItem recordingUpdated = recordingsUpdated.FirstOrDefault(rec => rec.RecordingToken == recordingToken); Assert(recordingUpdated != null, "Recording is not found", string.Format("Check that recording (token = {0}) exists in updated recording list", recordingToken)); GetTracksResponseItem track2 = null; if (recordingUpdated.Tracks.Track != null) { track2 = recordingUpdated.Tracks.Track.FirstOrDefault(t => t.TrackToken == trackToken); } Assert(track2 != null, String.Format("Track (token = {0}) isn't presented in recording (token = {1})", trackToken, recordingToken), String.Format("Check that new track (token = {0}) is presented in recording (token = {1})", trackToken, recordingToken)); // check track parameters CheckRecordingTrack(track2, trackConf); // check that all other tracks for initial selected recording // have the same parameters as for updated selected recording GetTracksResponseItem[] trackInitialOther = null; if (recordingInitial.Tracks.Track != null) { trackInitialOther = (recordingInitial.Tracks.Track.Where(tr => tr.TrackToken != trackToken)).ToArray <GetTracksResponseItem>(); } GetTracksResponseItem[] trackUpdatedOther = null; if (recordingUpdated.Tracks.Track != null) { trackUpdatedOther = (recordingUpdated.Tracks.Track.Where(tr => tr.TrackToken != trackToken)).ToArray <GetTracksResponseItem>(); } if (trackInitialOther != null && trackInitialOther.Length == 0) { trackInitialOther = null; } if (trackUpdatedOther != null && trackUpdatedOther.Length == 0) { trackUpdatedOther = null; } CheckTrackListChanged(trackInitialOther, trackUpdatedOther, string.Format("Check that initial track list of recording (token = {0}) wasn't changed", recordingInitial.RecordingToken)); // check that all other recordings have the same parameters value // as before creating a track GetRecordingsResponseItem[] recordingsInitialOther = null; if (recordingsInitial != null) { recordingsInitialOther = (recordingsInitial.Where(rec => rec.RecordingToken != recordingToken)).ToArray <GetRecordingsResponseItem>(); } GetRecordingsResponseItem[] recordingsUpdatedOther = null; if (recordingsUpdated != null) { recordingsUpdatedOther = (recordingsUpdated.Where(rec => rec.RecordingToken != recordingToken)).ToArray <GetRecordingsResponseItem>(); } if (recordingsInitialOther != null && recordingsInitialOther.Length == 0) { recordingsInitialOther = null; } if (recordingsUpdatedOther != null && recordingsUpdatedOther.Length == 0) { recordingsUpdatedOther = null; } // check that after CreateTrack // all tracks of all other recordings are the same CheckTrackListChanged_AllRecordings(recordingsInitialOther, recordingsUpdatedOther, "Check that initial track list of other existing recordings wasn't changed after CreateTrack"); // delete track DeleteTrack(recordingToken, trackToken); isTrackCreated = false; // get updated recordings (after DeleteTrack) GetRecordingsResponseItem[] recordingsUpdated2 = GetRecordings(); Assert(recordingsUpdated2 != null, "Recording list is empty", "Check that recording list is not empty"); // check that deleted track token is no longer presented in selected recording (from updated track list after deletion) GetRecordingsResponseItem recordingUpdated2 = recordingsUpdated2.FirstOrDefault(rec => rec.RecordingToken == recordingToken); Assert(recordingUpdated2 != null, "Recording is not found", string.Format("Check that recording (token = {0}) exists in updated recording list", recordingToken)); GetTracksResponseItem track3 = null; if (recordingUpdated2.Tracks.Track != null) { track3 = recordingUpdated2.Tracks.Track.FirstOrDefault(t => t.TrackToken == trackToken); } Assert(track3 == null, String.Format("Track (token = {0}) is still presented in recording (token = {1})", trackToken, recordingToken), String.Format("Check that deleted track (token = {0}) is no longer presented in recording (token = {1})", trackToken, recordingToken)); // check that before CreateTrack all other tracks in selected recording // have the same parameters as after DeleteTrack CheckTrackListChanged(recordingInitial.Tracks.Track, recordingUpdated2.Tracks.Track, string.Format("Check that initial track list of recording (token = {0}) wasn't changed", recordingInitial.RecordingToken)); // check that afteer CreateTrack + DeleteTrack // all tracks of all recordings are the same CheckTrackListChanged_AllRecordings(recordingsInitial, recordingsUpdated2, "Check that initial track list of existing recordings wasn't changed"); }, () => { if (isTrackCreated || isRecordingCreated || isTrackDeleted) { LogTestEvent(string.Format("Restoring the initial settings...{0}", Environment.NewLine)); } // reverting changes made during test if (isTrackCreated && !string.IsNullOrEmpty(trackToken)) { DeleteTrack(recordingToken, trackToken); } // reverting changes made during A.14 if (isRecordingCreated && !string.IsNullOrEmpty(recordingToken)) { DeleteRecording(recordingToken); } // reverting changes made during A.14 if (isTrackDeleted && !string.IsNullOrEmpty(recordingToken) && deletedTrackConf != null) { CreateTrack(recordingToken, deletedTrackConf); } }); }