public void TestGetAll()
        {
            var scaleDaoMock = new Mock<IDifficultyLevelScaleDao>();
            scaleDaoMock.Setup(x => x.GetAll())
                .Returns(new List<DifficultyLevelScale> {new DifficultyLevelScale {Name = "D"}});

            IDifficultyLevelScaleService scaleService = new DifficultyLevelScaleService(scaleDaoMock.Object);
            var result = scaleService.GetAll();
            Assert.AreEqual(1, result.Count);
            scaleDaoMock.Verify(x => x.GetAll(), Times.Once);
        }
        public void TestIsInUse()
        {
            Mock<IDifficultyLevelScaleDao> difficultyLevelScaleDaoMock = new Mock<IDifficultyLevelScaleDao>();
            difficultyLevelScaleDaoMock.Setup(x => x.IsInUse(It.IsAny<DifficultyLevelScale>())).Returns(true);

            DifficultyLevelScale difficultyLevelScale = new DifficultyLevelScale();
            IDifficultyLevelScaleService difficultyLevelScaleService = new DifficultyLevelScaleService(difficultyLevelScaleDaoMock.Object);
            bool isInUse = difficultyLevelScaleService.IsInUse(difficultyLevelScale);

            Assert.IsTrue(isInUse);
            difficultyLevelScaleDaoMock.Verify(x=>x.IsInUse(difficultyLevelScale), Times.Once);
        }
        public void TestCreate()
        {
            var scaleDaoMock = new Mock<IDifficultyLevelScaleDao>();
            scaleDaoMock.Setup(x => x.Create(It.IsAny<DifficultyLevelScale>()));

            var scaleName = "D";

            IDifficultyLevelScaleService scaleService = new DifficultyLevelScaleService(scaleDaoMock.Object);
            scaleService.Create(scaleName);

            scaleDaoMock.Verify(x => x.Create(It.Is<DifficultyLevelScale>(y => y.Name == scaleName)));
        }
        public void TestDelete(bool isInUse)
        {
            Mock<IDifficultyLevelScaleDao> difficultyLevelScaleDaoMock = new Mock<IDifficultyLevelScaleDao>();
            difficultyLevelScaleDaoMock.Setup(x => x.IsInUse(It.IsAny<DifficultyLevelScale>())).Returns(isInUse);
            difficultyLevelScaleDaoMock.Setup(x => x.Delete(It.IsAny<DifficultyLevelScale>()));

            DifficultyLevelScale difficultyLevelScale = new DifficultyLevelScale();
            IDifficultyLevelScaleService difficultyLevelScaleService = new DifficultyLevelScaleService(difficultyLevelScaleDaoMock.Object);
            difficultyLevelScaleService.Delete(difficultyLevelScale);

            difficultyLevelScaleDaoMock.Verify(x=>x.IsInUse(difficultyLevelScale), Times.Once);
            difficultyLevelScaleDaoMock.Verify(x=>x.Delete(difficultyLevelScale), Times.Once);
        }
        public void TestGetForLevel()
        {
            DifficultyLevelScale scaleToReturn = new DifficultyLevelScale();
            Mock<IDifficultyLevelScaleDao> difficultyLevelScaleDaoMock = new Mock<IDifficultyLevelScaleDao>();
            difficultyLevelScaleDaoMock.Setup(x => x.GetForDifficultyLevel(It.IsAny<DifficultyLevel>()))
                .Returns(scaleToReturn);

            DifficultyLevel levelToGetScaleFor = new DifficultyLevel();

            DifficultyLevelScale scale = new DifficultyLevelScaleService(difficultyLevelScaleDaoMock.Object).GetForDifficultyLevel(levelToGetScaleFor);

            scale.Should().Be(scaleToReturn);
            difficultyLevelScaleDaoMock.Verify(x=>x.GetForDifficultyLevel(levelToGetScaleFor), Times.Once);
        }
        public void TestSave()
        {
            Mock<IDifficultyLevelScaleDao> difficultyLevelScaleDaoMock = new Mock<IDifficultyLevelScaleDao>();
            difficultyLevelScaleDaoMock.Setup(x => x.Save(It.IsAny<DifficultyLevelScale>()));

            DifficultyLevelScale scaleToSave = new DifficultyLevelScale();

            IDifficultyLevelScaleService difficultyLevelScaleService = new DifficultyLevelScaleService(difficultyLevelScaleDaoMock.Object);
            difficultyLevelScaleService.Save(scaleToSave);

            difficultyLevelScaleDaoMock.Verify(x=>x.Save(scaleToSave), Times.Once);
        }