This repository has been archived on 2023-05-27. You can view files and clone it, but cannot push or open issues or pull requests.
BirdsiteLIVE/src/Tests/BirdsiteLive.Domain.Tests/StatusServiceTests.cs

88 lines
2.9 KiB
C#
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using BirdsiteLive.Common.Settings;
using BirdsiteLive.Domain.Statistics;
using BirdsiteLive.Domain.Tools;
using BirdsiteLive.Twitter.Models;
using Microsoft.Extensions.Logging;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Moq;
namespace BirdsiteLive.Domain.Tests
{
[TestClass]
public class StatusServiceTests
{
private readonly InstanceSettings _settings;
#region Ctor
public StatusServiceTests()
{
_settings = new InstanceSettings
{
Domain = "domain.name"
};
}
#endregion
[TestMethod]
public void ActivityTest()
{
#region Stubs
var username = "MyUserName";
var extractedTweet = new ExtractedTweet
{
Id = 124L,
CreatedAt = DateTime.UtcNow,
MessageContent = @"Getting ready for the weekend...have a great one everyone!
Photo by Tim Tronckoe | @timtronckoe
#archenemy #michaelamott #alissawhitegluz #jeffloomis #danielerlandsson #sharleedangelo"
};
#endregion
var logger1 = new Mock<ILogger<StatusExtractor>>();
var statusExtractor = new StatusExtractor(_settings, logger1.Object);
var stats = new Mock<IExtractionStatisticsHandler>();
var service = new StatusService(_settings, statusExtractor, stats.Object);
var activity = service.GetActivity(username, extractedTweet);
#region Validations
Assert.AreEqual(activity.type, "Create");
#endregion
}
[TestMethod]
public void RetweetTest()
{
#region Stubs
var username = "MyUserName";
var extractedTweet = new ExtractedTweet
{
Id = 124,
IsRetweet = true,
OriginalAuthor = new TwitterUser { Acct = "hello" },
CreatedAt = DateTime.UtcNow,
MessageContent = @"Getting ready for the weekend...have a great one everyone!",
RetweetId = 543,
};
#endregion
var logger1 = new Mock<ILogger<StatusExtractor>>();
var statusExtractor = new StatusExtractor(_settings, logger1.Object);
var stats = new Mock<IExtractionStatisticsHandler>();
var service = new StatusService(_settings, statusExtractor, stats.Object);
var activity = service.GetActivity(username, extractedTweet);
#region Validations
Assert.AreEqual(activity.type, "Announce");
Assert.AreEqual(activity.apObject.attributedTo, "https://domain.name/users/hello");
Assert.AreEqual(activity.apObject.announceId, "https://domain.name/users/myusername/statuses/124");
Assert.AreEqual(activity.apObject.id, "https://domain.name/users/hello/statuses/543");
#endregion
}
}
}