public void Delete_By_Topic_With_One_Topics_Per_Tag()
        {
            var tagRepository = Substitute.For<ITopicTagRepository>();
            var topicRepository = Substitute.For<ITopicRepository>();
            var topicTagService = new TopicTagService(tagRepository, topicRepository);

            var topicTag = new TopicTag
            {
                Tag = "tag-one",
                Topics = new List<Topic> { new Topic { Name = "HulkRules" } }
            };
            var topic = new Topic
            {
                Tags = new List<TopicTag>
                                           {
                                               topicTag
                                           }
            };

            topicTagService.DeleteByTopic(topic);

            Assert.IsTrue(topicTag.Topics.Count() <= 1);
            tagRepository.Received().Delete(Arg.Is(topicTag));
        }
        public void Delete_By_Topic_With_Multiple_Topics_Per_Tag()
        {
            var tagRepository = Substitute.For<ITopicTagRepository>();
            var topicRepository = Substitute.For<ITopicRepository>();
            var topicTagService = new TopicTagService(tagRepository, topicRepository);

            var topicTag = new TopicTag
                               {
                                   Tag = "tag-one",
                                   Topics = new List<Topic> {new Topic {Name = "Tony"},new Topic {Name = "Stark"}}
                               };
            var topic = new Topic
                            {
                                Tags = new List<TopicTag>
                                           {
                                               topicTag
                                           }
                            };

            topicTagService.DeleteByTopic(topic);

            Assert.IsFalse(topicTag.Topics.Count() <= 1);
            tagRepository.DidNotReceive().Delete(Arg.Is(topicTag));
        }