public void CanLoadLastFMSingleMock() { var mock = new Mock <ILastFM>(); var mock2 = new Mock <IRevTrack>(); mock2.SetupGet(x => x.PlayCount).Returns(50); IRevTrack track = mock2.Object; mock.Setup(m => m.GetTrack("Billy Bragg", "To Have and to Have Not")).Returns(track); var lib = mock.Object; var track2 = lib.GetTrack("Billy Bragg", "To Have and to Have Not"); Assert.IsNotNull(track2); Assert.That(track2.PlayCount == 50); }
private static void UpdateTrackCountAndDate(IRevTrack playCount, IITTrack track, DateTime?playDate) { if (playCount.PlayCount > track.PlayedCount) { track.PlayedCount = playCount.PlayCount.Value; } bool playDateError = false; var itunesPlayDateUtc = new DateTime(2006, 1, 1); try { itunesPlayDateUtc = track.PlayedDate.ToUniversalTime(); } catch (Exception e) { playDateError = true; Console.WriteLine("Play date error: " + e); } if (playDateError || playDate.GetValueOrDefault().ToUniversalTime() > itunesPlayDateUtc) { // Weird output error: // The Farmer's Frolic : Last.FM: 11/29/2012 10:35:20 PM; iTunes: 11/29/2012 11:37:55 PM Console.WriteLine($"{track.Name} : Last.FM: {playDate.GetValueOrDefault().ToUniversalTime()}; iTunes: {itunesPlayDateUtc}"); // The Getter for iTunes converts to local, but the setter expects UTC. track.PlayedDate = playDate.GetValueOrDefault().ToUniversalTime(); } TrackRecord.Instance.Set(new RTrack { Album = track.Album, Artist = track.Artist, Song = track.Name, PlayCount = track.PlayedCount, PlayDate = track.PlayedDate }, (playDate ?? DateTime.Now).ToUniversalTime()); }
public void Set(IRevTrack track, DateTime modifiedDate) { lock (_lock) { if (!Contains(track.Song, track.Album)) { _records.Add(new TrackTuple(track, modifiedDate)); } else if (!IsCurrent(track.Song, track.Album, modifiedDate)) { for (int i = 0; i < _records.Count; i++) { var record = _records[i]; if (record.Track.Song == track.Song && record.Track.Album == track.Album) { _records[i] = new TrackTuple(track, modifiedDate); break; } } } } }