New: Add Extra Audio Format Unit Test

This commit is contained in:
Qstick 2017-10-29 00:16:47 -04:00
commit f219e883ec
4 changed files with 42 additions and 9 deletions

View file

@ -1,4 +1,5 @@
using System; using System;
using System.Collections.Generic;
using System.Globalization; using System.Globalization;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
@ -63,7 +64,12 @@ namespace NzbDrone.Common.Extensions
return text; return text;
} }
public static string CleanSpaces(this string text) public static string Join(this IEnumerable<string> values, string separator)
{
return string.Join(separator, values);
}
public static string CleanSpaces(this string text)
{ {
return CollapseSpace.Replace(text, " ").Trim(); return CollapseSpace.Replace(text, " ").Trim();
} }

View file

@ -95,7 +95,14 @@ namespace NzbDrone.Common.Http.Dispatchers
{ {
if (responseStream != null) if (responseStream != null)
{ {
data = responseStream.ToBytes(); try
{
data = responseStream.ToBytes();
}
catch (Exception ex)
{
throw new WebException("Failed to read complete http response", ex, WebExceptionStatus.ReceiveFailure, httpWebResponse);
}
} }
} }

View file

@ -1,4 +1,4 @@
using System; using System;
using System.Linq; using System.Linq;
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.Specialized; using System.Collections.Specialized;
@ -37,7 +37,7 @@ namespace NzbDrone.Common.Http
} }
if (values.Length > 1) if (values.Length > 1)
{ {
throw new ApplicationException(string.Format("Expected {0} to occur only once.", key)); throw new ApplicationException($"Expected {key} to occur only once, but was {values.Join("|")}.");
} }
return values[0]; return values[0];

View file

@ -1,4 +1,4 @@
using FluentAssertions; using FluentAssertions;
using NUnit.Framework; using NUnit.Framework;
using NzbDrone.Core.MediaFiles.MediaInfo; using NzbDrone.Core.MediaFiles.MediaInfo;
using NzbDrone.Test.Common; using NzbDrone.Test.Common;
@ -22,6 +22,26 @@ namespace NzbDrone.Core.Test.MediaFiles.MediaInfo.MediaInfoFormatterTests
MediaInfoFormatter.FormatAudioCodec(mediaInfoModel).Should().Be(expectedFormat); MediaInfoFormatter.FormatAudioCodec(mediaInfoModel).Should().Be(expectedFormat);
} }
[TestCase("MPEG Audio, A_MPEG/L2, , ", "droned.s01e03.swedish.720p.hdtv.x264-prince", "MP2")]
[TestCase("Vorbis, A_VORBIS, , Xiph.Org libVorbis I 20101101 (Schaufenugget)", "DB Super HDTV", "Vorbis")]
[TestCase("PCM, 1, , ", "DW DVDRip XviD-idTV", "PCM")] // Dubbed most likely
[TestCase("TrueHD, A_TRUEHD, , ", "", "TrueHD")]
[TestCase("WMA, 161, , ", "Droned.wmv", "WMA")]
[TestCase("WMA, 162, Pro, ", "B.N.S04E18.720p.WEB-DL", "WMA")]
public void should_format_audio_format(string audioFormatPack, string sceneName, string expectedFormat)
{
var split = audioFormatPack.Split(new string[] { ", " }, System.StringSplitOptions.None);
var mediaInfoModel = new MediaInfoModel
{
AudioFormat = split[0],
AudioCodecID = split[1],
AudioProfile = split[2],
AudioCodecLibrary = split[3]
};
MediaInfoFormatter.FormatAudioCodec(mediaInfoModel).Should().Be(expectedFormat);
}
[Test] [Test]
public void should_return_MP3_for_MPEG_Audio_with_Layer_3_for_the_profile() public void should_return_MP3_for_MPEG_Audio_with_Layer_3_for_the_profile()
{ {