public void MethodAddThrowsArgumentException(string name, double minVal, double maxVal, int fontSize, string exceptionKeyWord) { Action add = () => sut.Add(name, new FrequencyGroup(minVal, maxVal), fontSize); add.Should().Throw <ArgumentException>() .And.Message.Should().Contain(exceptionKeyWord); }
public void ValidationOKTest1() { /* * T___ * TXXX * WXXX * APIC */ var tagContainer = new TagContainer(); tagContainer.Tag.SetExtendedHeader(0, false); tagContainer.Tag.SetHeaderFlags(false, false, false); tagContainer.Tag.SetVersion(3, 0); var textFrame = new TextFrame("TALB", "My Albun", TextEncodingType.UTF16); var userDefineTextFrame = new UserDefinedTextFrame("my comment", "so", TextEncodingType.UTF16); var linkFrame = new UserDefinedURLLinkFrame("id3tag", "id3tag.codeplex.com", TextEncodingType.UTF16); var pictureFrame = new PictureFrame(TextEncodingType.UTF16, "image/jpeg", "la", PictureType.Other, new byte[] { 0x11, 0x12, 0x13, 0x14 }); tagContainer.Add(textFrame); tagContainer.Add(userDefineTextFrame); tagContainer.Add(linkFrame); tagContainer.Add(pictureFrame); WriteTagContainer(tagContainer); // OK... passed! }
public void ExtendedHeaderEncoderTest() { var crc = new byte[] {0x20, 0x21, 0x22, 0x23}; var tagContainer = new TagContainer(); tagContainer.Tag.SetHeaderFlags(true, true, true); tagContainer.Tag.SetVersion(3, 0); tagContainer.Tag.SetExtendedHeader(10, true); tagContainer.Tag.SetCrc32(crc); var titleFrame = new TextFrame(); titleFrame.TextEncoding = TextEncodingType.UTF16; titleFrame.Descriptor.ID = "TIT2"; titleFrame.Content = "ABCD"; tagContainer.Add(titleFrame); var id3Tag = m_TagController.Encode(tagContainer); Assert.AreEqual(id3Tag.MajorVersion, 3); Assert.AreEqual(id3Tag.Revision, 0); Assert.IsTrue(id3Tag.UnsynchronisationFlag); Assert.IsTrue(id3Tag.UnsynchronisationFlag); Assert.IsTrue(id3Tag.ExtendedHeaderAvailable); Assert.IsNotNull(id3Tag.ExtendHeaderV3); Assert.IsTrue(ComparePayload(id3Tag.ExtendHeaderV3.CRC, crc)); Assert.AreEqual(id3Tag.Frames.Count, 1); }
public TagContainer Decode(Id3TagInfo info) { var container = new TagContainer(); var descriptor = container.Tag; // Decode the ID3 Tag info var majorVersion = info.MajorVersion; var revision = info.Revision; descriptor.SetVersion(majorVersion, revision); descriptor.SetHeaderFlags(info.UnsynchronisationFlag, info.ExtendedHeaderAvailable, info.Experimental); if (info.ExtendedHeaderAvailable) { var extendedHeader = info.ExtendHeaderV3; descriptor.SetExtendedHeader(extendedHeader.PaddingSize, extendedHeader.CRCDataPresent); if (extendedHeader.CRCDataPresent) { descriptor.SetCrc32(extendedHeader.CRC); } } foreach (var rawFrame in info.Frames) { // // Analyse the frame ID // var frame = AnalyseFrameId(rawFrame); if (frame != null) { frame.Import(rawFrame); container.Add(frame); } else { throw new ID3TagException("Frame analysing failed!"); } } return container; }
public void SimpleEncoderTest() { var tagContainer = new TagContainer(); tagContainer.Tag.SetHeaderFlags(false, false, false); tagContainer.Tag.SetVersion(3, 0); var titleFrame = new TextFrame(); titleFrame.TextEncoding = TextEncodingType.UTF16; titleFrame.Descriptor.ID = "TIT2"; titleFrame.Content = "ABCD"; tagContainer.Add(titleFrame); var id3Tag = m_TagController.Encode(tagContainer); Assert.AreEqual(id3Tag.MajorVersion, 3); Assert.AreEqual(id3Tag.Revision, 0); Assert.IsFalse(id3Tag.UnsynchronisationFlag); Assert.IsFalse(id3Tag.UnsynchronisationFlag); Assert.IsFalse(id3Tag.ExtendedHeaderAvailable); Assert.IsNull(id3Tag.ExtendHeaderV3); Assert.AreEqual(id3Tag.Frames.Count, 1); }
private static void WriteUnsychronisedLyrics(string descriptor, string lyrics, TagContainer container) { var uslt = new UnsynchronisedLyricFrame("ENG",descriptor,lyrics,Encoding.ASCII); container.Add(uslt); }
private static void WritePictureFrame(ID3V2TagData data, TagContainer container) { using (FileStream stream = File.Open(data.PictureFile, FileMode.Open)) { // // Read the picture. // int byteCount = Convert.ToInt32(stream.Length); var pictureData = new byte[byteCount]; stream.Read(pictureData, 0, byteCount); // // Add the picture frame. // var pictureFrame = new PictureFrame( Encoding.Default, "image/jpg", "Other", PictureType.Other, pictureData); container.Add(pictureFrame); } }
public void AddZuneAttribute(ZuneAttribute zuneAttribute) { RemoveZuneAttribute(zuneAttribute.Name); _container.Add(new PrivateFrame(zuneAttribute.Name, zuneAttribute.Guid.ToByteArray())); }
public void AddZuneAttribute(ZuneAttribute zuneAttribute) { RemoveZuneAttribute(zuneAttribute.Name); _container.Add(new Attribute(zuneAttribute.Name, zuneAttribute.Guid.ToString(), WMT_ATTR_DATATYPE.WMT_TYPE_GUID)); }
public void EncodeWithExtendedHeaderTest2() { // // Configure the tag // var tagContainer1 = new TagContainer(); tagContainer1.Tag.SetVersion(3, 0); tagContainer1.Tag.SetHeaderFlags(true, true, true); tagContainer1.Tag.SetExtendedHeader(10, true); tagContainer1.Tag.SetCrc32(new byte[] {0x10, 0x20, 0x30, 0x40}); var titleFrame = new TextFrame { Descriptor = {ID = "TIT2"}, TextEncoding = TextEncodingType.UTF16, Content = "Title1" }; tagContainer1.Add(titleFrame); // // Write and read the tag again. // var tagContainer2 = WriteAndRead(tagContainer1); // // Compare both container! // CompareContainer(tagContainer1, tagContainer2); }
public void SynchronizedTest5() { var tagContainer1 = new TagContainer(); tagContainer1.Tag.SetVersion(3, 0); tagContainer1.Tag.SetHeaderFlags(true, false, false); const long counter = 0x12FF; var playCounter = new PlayCounterFrame(counter); tagContainer1.Add(playCounter); var tagContainer2 = WriteAndRead(tagContainer1); CompareContainer(tagContainer1, tagContainer2); var playCounter2 = FrameUtils.ConvertToPlayCounterFrame(tagContainer2[0]); Assert.AreEqual(playCounter2.Counter, counter); }
public void EncodeWithoutExtendedHeaderTest() { // // Configure the tag // var tagContainer1 = new TagContainer(); tagContainer1.Tag.SetVersion(3, 0); tagContainer1.Tag.SetHeaderFlags(false, false, false); var titleFrame = new TextFrame { Descriptor = {ID = "TIT2"}, TextEncoding = TextEncodingType.UTF16, Content = "Title1" }; tagContainer1.Add(titleFrame); // // Write and read the tag again. // var tagContainer2 = WriteAndRead(tagContainer1); // // Compare both container! // CompareContainer(tagContainer1, tagContainer2); }
public TagContainer BuildTag(ID3V2TagData data) { var tagController = new TagContainer(); // Configure the tag header. tagController.Tag.SetVersion(3, 0); tagController.Tag.SetHeaderFlags(data.Unsynchronisation, data.ExtendedHeader, data.ExperimentalIndicator); if (data.ExtendedHeader) { tagController.Tag.SetExtendedHeader(data.PaddingSize, data.CrCPresent); tagController.Tag.SetCrc32(data.Crc); } // OK. Build the frames. var albumFrame = new TextFrame("TALB", data.Album, data.EncodingType); var artistFrame = new TextFrame("TPE2", data.Artist, data.EncodingType); var yearFrame = new TextFrame("TYER", data.Year, data.EncodingType); var titleFrame = new TextFrame("TIT2", data.Title, data.EncodingType); var textComment = new UserDefinedTextFrame("Your comment", data.Comment, data.EncodingType); var comment = new CommentFrame("ENG", "Your Comment", data.Comment, data.EncodingType); var encoder = new TextFrame("TENC", data.Encoder, data.EncodingType); tagController.Add(albumFrame); tagController.Add(artistFrame); tagController.Add(yearFrame); tagController.Add(titleFrame); tagController.Add(textComment); tagController.Add(comment); tagController.Add(encoder); if (data.PictureFrameEnabled) { if (File.Exists(data.PictureFile)) { WritePictureFrame(data, tagController); } else { MessageBox.Show("Picture file not found."); } } return tagController; }