예제 #1
0
        public void ManageSqliteSourceViewModel_UpdateManagerThrowsExceptionWithInnerException()
        {
            var expectedExceptionMessage = "someExceptionMessage";

            _updateManagerMock.Setup(it => it.GetComputerNames())
            .Throws(new Exception("someOuterExceptionMessage", new Exception(expectedExceptionMessage)));

            _targetUpdateManagerRequestServiceName = new ManageSqliteSourceViewModel(
                _updateManagerMock.Object,
                _requestServiceNameView,
                _aggregatorMock.Object,
                _asyncWorkerMock.Object);

            Assert.IsTrue(_targetUpdateManagerRequestServiceName.TestFailed);
            Assert.IsFalse(_targetUpdateManagerRequestServiceName.TestPassed);
            Assert.AreEqual(expectedExceptionMessage, _targetUpdateManagerRequestServiceName.TestMessage);
        }
예제 #2
0
        public void TestInitialize()
        {
            _asyncWorkerMock            = new Mock <IAsyncWorker>();
            _updateManagerMock          = new Mock <IManageDatabaseSourceModel>();
            _aggregatorMock             = new Mock <IEventAggregator>();
            _dbSourceMock               = new Mock <IDbSource>();
            _requestServiceNameViewMock = new Mock <IRequestServiceNameViewModel>();
            _requestServiceNameView     = Task.FromResult(_requestServiceNameViewMock.Object);

            _updateManagerMock.Setup(it => it.GetComputerNames())
            .Returns(new List <string>()
            {
                "someName1", "someName2"
            });

            _dbSourceMock.SetupGet(it => it.Name).Returns("someDbSourceName");
            _dbSourceMock.SetupGet(it => it.ConnectionTimeout).Returns(30);
            _asyncWorkerMock.Setup(
                it =>
                it.Start(
                    It.IsAny <Func <List <ComputerName> > >(),
                    It.IsAny <Action <List <ComputerName> > >(),
                    It.IsAny <Action <Exception> >()))
            .Callback <Func <List <ComputerName> >, Action <List <ComputerName> >, Action <Exception> >(
                (progress, success, fail) =>
            {
                try
                {
                    success?.Invoke(progress?.Invoke());
                }
                catch (Exception ex)
                {
                    fail?.Invoke(ex);
                }
            });

            _updateManagerMock.Setup(model => model.FetchDbSource(It.IsAny <Guid>()))
            .Returns(_dbSourceMock.Object);
            _asyncWorkerMock.Setup(worker =>
                                   worker.Start(
                                       It.IsAny <Func <IDbSource> >(),
                                       It.IsAny <Action <IDbSource> >()))
            .Callback <Func <IDbSource>, Action <IDbSource> >((func, action) =>
            {
                var dbSource = func.Invoke();
                action?.Invoke(dbSource);
            });
            _targetAsyncWorker                  = new ManageSqliteSourceViewModel(_asyncWorkerMock.Object);
            _changedPropertiesAsyncWorker       = new List <string>();
            _targetAsyncWorker.PropertyChanged += (sender, args) =>
            {
                _changedPropertiesAsyncWorker.Add(args.PropertyName);
            };


            _targetUpdateManagerAggregatorDbSource = new ManageSqliteSourceViewModel(
                _updateManagerMock.Object,
                _aggregatorMock.Object,
                _dbSourceMock.Object,
                _asyncWorkerMock.Object);
            _changedPropertiesUpdateManagerAggregatorDbSource = new List <string>();

            _targetUpdateManagerRequestServiceName = new ManageSqliteSourceViewModel(
                _updateManagerMock.Object,
                _requestServiceNameView,
                _aggregatorMock.Object,
                _asyncWorkerMock.Object);
            _changedUpdateManagerRequestServiceName = new List <string>();
        }
예제 #3
0
        public void ManageSqliteSourceViewModel_dbSourceNotNull()
        {
            var expectedId = Guid.NewGuid();

            _asyncWorkerMock            = new Mock <IAsyncWorker>();
            _updateManagerMock          = new Mock <IManageDatabaseSourceModel>();
            _aggregatorMock             = new Mock <IEventAggregator>();
            _dbSourceMock               = new Mock <IDbSource>();
            _requestServiceNameViewMock = new Mock <IRequestServiceNameViewModel>();
            _requestServiceNameView     = Task.FromResult(_requestServiceNameViewMock.Object);

            _updateManagerMock.Setup(it => it.GetComputerNames())
            .Returns(new List <string>()
            {
                "someName1", "someName2"
            });

            _dbSourceMock.SetupGet(it => it.Name).Returns("someDbSourceName");
            _dbSourceMock.SetupGet(it => it.ConnectionTimeout).Returns(30);
            _dbSourceMock.Setup(it => it.Id).Returns(expectedId);

            _updateManagerMock.Setup(model => model.FetchDbSource(It.IsAny <Guid>()))
            .Returns(_dbSourceMock.Object);
            _asyncWorkerMock.Setup(worker =>
                                   worker.Start(
                                       It.IsAny <Func <IDbSource> >(),
                                       It.IsAny <Action <IDbSource> >()))
            .Callback <Func <IDbSource>, Action <IDbSource> >((func, action) =>
            {
                var dbSource = func.Invoke();
                action?.Invoke(dbSource);
            });

            _targetAsyncWorker = new ManageSqliteSourceViewModel(
                _updateManagerMock.Object,
                _aggregatorMock.Object,
                _dbSourceMock.Object,
                _asyncWorkerMock.Object);

            //arrange
            var expectedAuthenticationType = AuthenticationType.Anonymous;
            var expectedServerName         = "expectedServerName";
            var expectedPassword           = "******";
            var expectedUsername           = "******";
            var expectedType   = enSourceType.SQLiteDatabase;
            var expectedPath   = "somePath";
            var expectedDbName = "someDbName";

            _targetAsyncWorker.AuthenticationType = expectedAuthenticationType;
            _targetAsyncWorker.ServerName         = new ComputerName()
            {
                Name = expectedServerName
            };
            _targetAsyncWorker.Password     = expectedPassword;
            _targetAsyncWorker.UserName     = expectedUsername;
            _targetAsyncWorker.Path         = expectedPath;
            _targetAsyncWorker.DatabaseName = expectedDbName;
            _targetAsyncWorker.Item         = _dbSourceMock.Object;

            //act
            var value = _targetAsyncWorker.ToModel();

            //assert
            Assert.AreSame(_targetAsyncWorker.Item, value);
            Assert.AreEqual(expectedAuthenticationType, value.AuthenticationType);
            Assert.AreEqual(expectedPassword, value.Password);
            Assert.AreEqual(expectedType, value.Type);
            Assert.AreEqual(expectedDbName, value.DbName);
            Assert.AreEqual(expectedId, value.Id);
        }