public void DropboxFileUploadViewModel_Sources()
        {
            var env = new Mock <IEnvironmentModel>();
            var res = new Mock <IResourceRepository>();
            var agg = new Mock <IEventAggregator>();

            env.Setup(a => a.ResourceRepository).Returns(res.Object);
            var sources = GetSources();

            res.Setup(a => a.FindSourcesByType <OauthSource>(env.Object, enSourceType.OauthSource)).Returns(sources);


            //------------Setup for test--------------------------
            var fileOps = new DropBoxUploadFileViewModel(CreateModelItem(), env.Object, agg.Object);

            //------------Execute Test---------------------------
            var availableSources = fileOps.Sources.ToList();

            //------------Assert Results-------------------------
            Assert.AreEqual(availableSources.Count, 4);
            Assert.AreEqual(availableSources[0].ResourceName, "Select a OAuth Source...");
            Assert.AreEqual(availableSources[1].ResourceName, "New OAuth Source...");
            Assert.AreEqual(availableSources[2].ResourceName, "bob");
            Assert.AreEqual(availableSources[3].ResourceName, "dave");
        }
        // ReSharper disable InconsistentNaming
        public void DropboxFileUploadViewModel_SelectASource_WhenConstructor()
        {
            var env = new Mock <IEnvironmentModel>();
            var mockResourceRepo = new Mock <IResourceRepository>();
            var oauthSources     = new List <OauthSource> {
                new OauthSource {
                    ResourceName = "Dropbox Source"
                }
            };

            mockResourceRepo.Setup(repository => repository.FindSourcesByType <OauthSource>(It.IsAny <IEnvironmentModel>(), enSourceType.OauthSource)).Returns(oauthSources);
            env.Setup(model => model.ResourceRepository).Returns(mockResourceRepo.Object);
            var agg = new Mock <IEventAggregator>();
            //------------Setup for test--------------------------
            var fileOps = new DropBoxUploadFileViewModel(CreateModelItem(), env.Object, agg.Object);

            Assert.AreEqual(fileOps.Operations[0], "Read File");
            Assert.AreEqual(fileOps.Operations[1], "Write File");
            Assert.AreEqual(3, fileOps.Sources.Count);
            Assert.AreEqual("Select a OAuth Source...", fileOps.SelectedSource.ResourceName);
        }
        public void DropboxFileUploadViewModel_EditSourceOnlyAvailableIfSourceSelected_NotSelectASource()
        {
            var env = new Mock <IEnvironmentModel>();
            var res = new Mock <IResourceRepository>();
            var agg = new Mock <IEventAggregator>();

            env.Setup(a => a.ResourceRepository).Returns(res.Object);
            var sources = GetSources();

            res.Setup(a => a.FindSourcesByType <OauthSource>(env.Object, enSourceType.OauthSource)).Returns(sources);
            res.Setup(a => a.FindSingle(It.IsAny <Expression <Func <IResourceModel, bool> > >(), false, false)).Returns(new Mock <IResourceModel>().Object);
            var model = CreateModelItem();
            //------------Setup for test--------------------------
            var fileOps = new DropBoxUploadFileViewModel(model, env.Object, agg.Object)
            {
                Operation = "Read File"
            };

            Assert.IsFalse(fileOps.IsDropboxSourceSelected);
            fileOps.SelectedSource = fileOps.Sources[0];
            Assert.IsFalse(fileOps.IsDropboxSourceSelected);
        }
        public void DropboxFileUploadViewModel_Source_SetsModelItem()
        {
            var env = new Mock <IEnvironmentModel>();
            var res = new Mock <IResourceRepository>();
            var agg = new Mock <IEventAggregator>();

            env.Setup(a => a.ResourceRepository).Returns(res.Object);
            var sources = GetSources();

            res.Setup(a => a.FindSourcesByType <OauthSource>(env.Object, enSourceType.OauthSource)).Returns(sources);

            var model = CreateModelItem();
            //------------Setup for test--------------------------
            var fileOps          = new DropBoxUploadFileViewModel(model, env.Object, agg.Object);
            var availableSources = fileOps.Sources.ToList();

            fileOps.SelectedSource = availableSources[0];
            //------------Execute Test---------------------------

            //------------Assert Results-------------------------
            Assert.AreEqual(model.GetProperty <OauthSource>("SelectedSource"), availableSources[0]);
        }
        public void DropboxFileUploadViewModel_EditSourcePublishesMessage()
        {
            var env = new Mock <IEnvironmentModel>();
            var res = new Mock <IResourceRepository>();
            var agg = new Mock <IEventAggregator>();

            env.Setup(a => a.ResourceRepository).Returns(res.Object);
            var sources = GetSources();

            res.Setup(a => a.FindSourcesByType <OauthSource>(env.Object, enSourceType.OauthSource)).Returns(sources);
            res.Setup(a => a.FindSingle(It.IsAny <Expression <Func <IResourceModel, bool> > >(), false, false)).Returns(new Mock <IResourceModel>().Object);
            var model = CreateModelItem();
            //------------Setup for test--------------------------
            var fileOps = new DropBoxUploadFileViewModel(model, env.Object, agg.Object)
            {
                Operation = "Read File", SelectedSource = sources[2]
            };

            fileOps.EditDropboxSourceCommand.Execute(null);
            //------------Execute Test---------------------------
            //------------Assert Results-------------------------
            agg.Verify(a => a.Publish(It.IsAny <ShowEditResourceWizardMessage>()));
        }