private static void VerifyDiscrepancyResolution(IDiscrepanciesService service) { // Assort var account = new Account { EmailAddress = "*****@*****.**", FirstName = "Amaury", LastName = "Rodriguez", ProviderId = (int)Domain.Engagement.Providers.ProviderType.Yahoo }; var subscriber = default(Subscriber); var notExistingSeedDiscrepancy = SeedDiscrepancy.FromEngager(account, subscriber); // Act var result = service.Resolve(notExistingSeedDiscrepancy).Result; // Assert Assert.IsTrue(result.Succeeded); Assert.AreEqual(SeedDiscrepancy.ResolvedMessage, result.Messages); Assert.AreEqual(notExistingSeedDiscrepancy, result.Source); using (var ctx = new SubscribersContext()) { var provider = WD40.Domain.Engagement.Providers.Registry.Instance[notExistingSeedDiscrepancy.Account.Value.ProviderId]; var metadata = service.GetMetadataForProviderAsync(provider.SubscriberId).Result; subscriber = ctx.FromStore(metadata.DatabaseName, metadata.TableName).GetSubscribers(s => s.email.Trim() == notExistingSeedDiscrepancy.EmailAddress).Result.SingleOrDefault(); Assert.IsNotNull(subscriber); Assert.AreEqual(subscriber.send, 1); } // TODO: Update subscriber set Mailable = false subscriber.SetMailable(false); var notMailableSeedDiscrepancy = SeedDiscrepancy.FromEngager(account, subscriber); // Act result = service.Resolve(notMailableSeedDiscrepancy).Result; // Assert Assert.IsTrue(result.Succeeded); Assert.AreEqual(SeedDiscrepancy.ResolvedMessage, result.Messages); Assert.AreEqual(notMailableSeedDiscrepancy, result.Source); using (var ctx = new SubscribersContext()) { var provider = WD40.Domain.Engagement.Providers.Registry.Instance[notExistingSeedDiscrepancy.Account.Value.ProviderId]; var metadata = service.GetMetadataForProviderAsync(provider.SubscriberId).Result; subscriber = ctx.FromStore(metadata.DatabaseName, metadata.TableName).GetSubscribers(s => s.email.Trim() == notExistingSeedDiscrepancy.EmailAddress).Result.SingleOrDefault(); Assert.IsNotNull(subscriber); Assert.AreEqual(subscriber.send, 1); // Clean Up var wasDeleted = ctx.Delete(subscriber).Result; Assert.IsTrue(wasDeleted); subscriber = ctx.GetSubscribers(s => s.email.Trim() == notExistingSeedDiscrepancy.EmailAddress).Result.SingleOrDefault(); Assert.IsNull(subscriber); } }