public void ParseShouldParseVersion() { byte[] mockData = new byte[] { 0x49, 0x44, 0x33, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 }; Id3Metadata metadata = new Id3Metadata(mockData); metadata.Parse(); Assert.AreEqual("2.3.1", metadata.Version); }
public void ParseShouldInvalidateTagIfFrameHeaderSizeHasInvalidByte() { byte[] mockData = new byte[] { 0x49, 0x44, 0x33, 0x03, 0x01, 0x1F, 0x80, 0x00, 0x02, 0x01 }; Id3Metadata metadata = new Id3Metadata(mockData); metadata.Parse(); Assert.AreEqual(false, metadata.Valid); }
public void ParseShouldParseExperimentalIndicatorFlagAsTrueIfSet() { byte[] mockData = new byte[] { 0x49, 0x44, 0x33, 0x03, 0x01, 0x20, 0x00, 0x00, 0x00, 0x00 }; Id3Metadata metadata = new Id3Metadata(mockData); metadata.Parse(); Assert.IsTrue(metadata.IsExperimentalStage); }
public void ParseShouldParseTagSize() { byte[] mockData = new byte[] { 0x49, 0x44, 0x33, 0x03, 0x01, 0x1F, 0x00, 0x00, 0x02, 0x01 }; Id3Metadata metadata = new Id3Metadata(mockData); metadata.Parse(); Assert.AreEqual((uint)257, metadata.TagSize); }
public void ParseShouldParseExtendedHeaderFlagAsTrueIfSet() { byte[] mockData = new byte[] { 0x49, 0x44, 0x33, 0x03, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; Id3Metadata metadata = new Id3Metadata(mockData); metadata.Parse(); Assert.IsTrue(metadata.ContainsExtendedHeader); }
public void ParseShouldParseUnsynchronizationFlagAsTrueIfSet() { byte[] mockData = new byte[] { 0x49, 0x44, 0x33, 0x03, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00 }; Id3Metadata metadata = new Id3Metadata(mockData); metadata.Parse(); Assert.IsTrue(metadata.IsUnsynchronisationUsed); }
public void ParseShouldParseExperimentalIndicatorFlagAsFalseIfNotSet() { byte[] mockData = new byte[] { 0x49, 0x44, 0x33, 0x03, 0x01, 0x1F, 0x00, 0x00, 0x00, 0x00 }; Id3Metadata metadata = new Id3Metadata(mockData); metadata.IsUnsynchronisationUsed = true; metadata.Parse(); Assert.IsFalse(metadata.IsExperimentalStage); }
public void ParseShouldParseExtendedHeaderFlagAsFalseIfNotSet() { byte[] mockData = new byte[] { 0x49, 0x44, 0x33, 0x03, 0x01, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A }; Id3Metadata metadata = new Id3Metadata(mockData); metadata.IsUnsynchronisationUsed = true; metadata.Parse(); Assert.IsFalse(metadata.ContainsExtendedHeader); Assert.AreEqual(null, metadata.ExtendedHeader); }
public void ParseShouldParseAllMetadata() { const string mockFilepath = @"c:\test.mp3"; byte[] mockFileData = new byte[] { 0x49, 0x44, 0x33, 0x03, 0x00, 0xE0, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30 }; Moq.Mock <IFileSystem> filesystemMock = new Moq.Mock <IFileSystem>(); filesystemMock.Setup(x => x.File.ReadAllBytes(mockFilepath)).Returns(mockFileData); filesystemMock.Setup(x => x.File.Exists(mockFilepath)).Returns(true); MetadataParser parser = new MetadataParser(filesystemMock.Object, mockFilepath); Id3Metadata metadata = parser.Parse(); Assert.AreEqual("2.3.0", metadata.Version); Assert.IsTrue(metadata.IsUnsynchronisationUsed); Assert.IsTrue(metadata.ContainsExtendedHeader); Assert.IsTrue(metadata.IsExperimentalStage); Assert.AreEqual((uint)257, metadata.TagSize); Assert.AreEqual((uint)10, metadata.ExtendedHeader.ExtendedHeaderSize); Assert.AreEqual(false, metadata.ExtendedHeader.IsCrcDataPresent); Assert.AreEqual((uint)48, metadata.ExtendedHeader.SizeOfPadding); }