public void ShouldBuild()
        {
            RequestedWatchlistScreeningCheck check =
                new RequestedWatchlistScreeningCheckBuilder()
                .Build();

            Assert.AreEqual(DocScanConstants.WatchlistScreening, check.Type);
            Assert.IsNotNull(check.Config);
        }
        public void ShouldBuildForAdverseMedia()
        {
            RequestedWatchlistScreeningCheck check =
                new RequestedWatchlistScreeningCheckBuilder()
                .ForAdverseMedia()
                .Build();

            Assert.AreEqual(DocScanConstants.WatchlistScreening, check.Type);
            Assert.AreEqual(DocScanConstants.AdverseMedia, check.Config.Categories.First());
        }
        public void ShouldNotBuildWithWhitespaceStringCategory()
        {
            string withCategory = "     ";

            Assert.ThrowsException <InvalidOperationException>(() =>
            {
                RequestedWatchlistScreeningCheck check =
                    new RequestedWatchlistScreeningCheckBuilder()
                    .WithCategory(withCategory)
                    .Build();
            });
        }
        public void ShouldBuildWithCategory()
        {
            string withCategory = "someCategory";

            RequestedWatchlistScreeningCheck check =
                new RequestedWatchlistScreeningCheckBuilder()
                .WithCategory(withCategory)
                .Build();

            Assert.AreEqual(DocScanConstants.WatchlistScreening, check.Type);
            Assert.AreEqual(withCategory, check.Config.Categories.First());
        }
        public void ShouldBuildWithCategoryAddedOnceDespiteMultipleCalls()
        {
            RequestedWatchlistScreeningCheck check =
                new RequestedWatchlistScreeningCheckBuilder()
                .ForAdverseMedia()
                .ForAdverseMedia()
                .Build();

            Assert.AreEqual(DocScanConstants.WatchlistScreening, check.Type);
            Assert.IsTrue(check.Config.Categories.Contains(DocScanConstants.AdverseMedia));
            Assert.AreEqual(1, check.Config.Categories.Count);
        }
        public void ShouldBuildWithMultipleCategories()
        {
            RequestedWatchlistScreeningCheck check =
                new RequestedWatchlistScreeningCheckBuilder()
                .ForAdverseMedia()
                .ForSanctions()
                .Build();

            Assert.AreEqual(DocScanConstants.WatchlistScreening, check.Type);
            Assert.IsTrue(check.Config.Categories.Contains(DocScanConstants.AdverseMedia));
            Assert.IsTrue(check.Config.Categories.Contains(DocScanConstants.Sanctions));
        }
        public void ShouldBuildWithCategoryUnknownToTheSdk()
        {
            string withCategory = "SOME_UNKNOWN_CATEGORY";

            RequestedWatchlistScreeningCheck check =
                new RequestedWatchlistScreeningCheckBuilder()
                .WithCategory(withCategory)
                .Build();

            Assert.AreEqual(DocScanConstants.WatchlistScreening, check.Type);
            Assert.AreEqual(withCategory, check.Config.Categories.First());
        }