public void EnvironmentRepositorySaveWithSingleNullExpectedDoesNothing()
        {
            var source = new Mock<IEnvironmentModel>();

            var repo = new TestEnvironmentRespository(source.Object);
            var startCount = repo.All().Count;

            repo.Save((ICollection<IEnvironmentModel>)null);
            Assert.AreEqual(startCount, repo.All().Count);
            Assert.AreEqual(0, repo.AddInternalHitCount);
            Assert.AreEqual(0, repo.WriteSessionHitCount);
        }
 public void EnvironmentRepository_Fetch_NotFound_ReturnsEnvironment()
 {
     //------------Setup for test--------------------------
     var c1 = CreateMockConnection();
     var e1 = new EnvironmentModel(Guid.NewGuid(), c1.Object);
     var source = new Mock<IEnvironmentModel>();
     var repo = new TestEnvironmentRespository(source.Object);
     repo.Save(e1);
     //------------Execute Test---------------------------
     var environmentModel = repo.Fetch(new Mock<IEnvironmentModel>().Object);
     //------------Assert Results-------------------------
     Assert.IsNotNull(environmentModel);
 }
        public void EnvironmentRepositorySaveWithSingleItemExpectedAddsItem()
        {
            var source = new Mock<IEnvironmentModel>();
            var e1 = new Mock<IEnvironmentModel>();

            var repo = new TestEnvironmentRespository(source.Object);
            var startCount = repo.All().Count;

            repo.Save(e1.Object);
            Assert.AreEqual(startCount + 1, repo.All().Count);
            Assert.AreEqual(1, repo.AddInternalHitCount);
        }
        public void EnvironmentRepositorySaveWithSingleItemExpectedDoesNotInvokesWriteSession()
        {
            var source = new Mock<IEnvironmentModel>();
            var e1 = new Mock<IEnvironmentModel>();

            var repo = new TestEnvironmentRespository(source.Object);

            repo.Save(e1.Object);
            Assert.AreEqual(0, repo.WriteSessionHitCount);
        }
        public void EnvironmentRepositorySaveWithSingleExistingItemExpectedReplacesItem()
        {
            // DO NOT use mock as test requires IEquatable of IEnvironmentModel
            var c1 = CreateMockConnection();
            //var wizard = new Mock<IWizardEngine>();
            var e1 = new EnvironmentModel(Guid.NewGuid(), c1.Object);

            var source = new Mock<IEnvironmentModel>();
            var repo = new TestEnvironmentRespository(source.Object, e1);
            var startCount = repo.All().Count;

            repo.Save(e1);

            Assert.AreEqual(startCount, repo.All().Count);
        }
        public void EnvironmentRepositorySaveWithSingleExpectedDoesNotConnect()
        {
            // DO NOT use mock as test requires IEquatable of IEnvironmentModel
            var c1 = CreateMockConnection();
            c1.Setup(c => c.Connect(It.IsAny<Guid>())).Verifiable();

            //var wizard = new Mock<IWizardEngine>();
            var e1 = new EnvironmentModel(Guid.NewGuid(), c1.Object);

            var source = new Mock<IEnvironmentModel>();
            var repo = new TestEnvironmentRespository(source.Object);

            repo.Save(e1);

            c1.Verify(c => c.Connect(It.IsAny<Guid>()), Times.Never());
        }
        public void EnvironmentRepositorySaveWithManyItemsExpectedAddsItems()
        {
            var source = new Mock<IEnvironmentModel>();
            var e1 = new Mock<IEnvironmentModel>();
            var e2 = new Mock<IEnvironmentModel>();

            var repo = new TestEnvironmentRespository(source.Object);
            var startCount = repo.All().Count;

            repo.Save(new List<IEnvironmentModel> { e1.Object, e2.Object });
            Assert.AreEqual(startCount + 2, repo.All().Count);
            Assert.AreEqual(2, repo.AddInternalHitCount);
        }
 public void EnvironmentRepository_Save_ValidEnvironmentModel_ReturnsNotSaveMessage()
 {
     var source = new Mock<IEnvironmentModel>();
     var repo = new TestEnvironmentRespository(source.Object);
     IEnvironmentModel e1 = null;
     // ReSharper disable ExpressionIsAlwaysNull
     var result = repo.Save(e1);
     // ReSharper restore ExpressionIsAlwaysNull
     Assert.AreEqual(result, "Not Saved");
 }
        public void EnvironmentRepository_Save_ValidEnvironmentModel_ReturnsASaveMessage()
        {
            var source = new Mock<IEnvironmentModel>();
            var e1 = new Mock<IEnvironmentModel>();

            var repo = new TestEnvironmentRespository(source.Object);

            var result = repo.Save(e1.Object);

            Assert.AreEqual(result, "Saved");
        }
 public void EnvironmentRepository_Save_RaisesItemAddedEvent()
 {
     //------------Setup for test--------------------------
     var c1 = CreateMockConnection();
     var e1 = new EnvironmentModel(Guid.NewGuid(), c1.Object);
     var source = new Mock<IEnvironmentModel>();
     bool _eventFired = false;
     var repo = new TestEnvironmentRespository(source.Object);
     repo.ItemAdded += (sender, args) =>
     {
         _eventFired = true;
     };
     e1.Name = "New Name";
     //------------Execute Test---------------------------
     repo.Save(e1);
     //------------Assert Results-------------------------
     Assert.IsTrue(_eventFired);
 }
 public void EnvironmentRepository_Save_NotExistingEnvironment_DoesNotRaisesItemEditedEvent()
 {
     //------------Setup for test--------------------------
     var c1 = CreateMockConnection();
     var e1 = new EnvironmentModel(Guid.NewGuid(), c1.Object);
     var source = new Mock<IEnvironmentModel>();
     IEnvironmentModel _editedEnvironment = null;
     var repo = new TestEnvironmentRespository(source.Object);
     repo.ItemEdited += (sender, args) =>
     {
         _editedEnvironment = args.Environment;
     };
     e1.Name = "New Name";
     //------------Execute Test---------------------------
     repo.Save(e1);
     //------------Assert Results-------------------------
     Assert.IsNull(_editedEnvironment);
 }