Esempio n. 1
0
        public void ConstructorTest_NullStorageManagerFactory_ShouldThrow()
        {
            Exception ex = Assert.Throws<ArgumentNullException>(() =>
            {
                var pool = new Coinium.Mining.Pools.Pool(
                    _hashAlgorithmFactory,
                    _serverFactory,
                    _serviceFactory,
                    _daemonClient,
                    _minerManagerFactory,
                    _jobTrackerFactory,
                    _jobManagerFactory,
                    _shareManagerFactory,
                    _storageManagerFactory,
                    null);
            });

            ex.Message.Should().Contain("IGlobalConfigFactory");
        }
Esempio n. 2
0
        public void InitializationTest_NonNullParams_ShouldSuccess()
        {
            var pool = new Coinium.Mining.Pools.Pool(
                _hashAlgorithmFactory,
                _serverFactory,
                _serviceFactory,
                _daemonClient,
                _minerManagerFactory,
                _jobTrackerFactory,
                _jobManagerFactory,
                _shareManagerFactory,
                _storageManagerFactory,
                _globalConfigFactory);

            pool.Should().Not.Be.Null();
            pool.InstanceId.Should().Be.GreaterThan((UInt32)0);

            // pool-config mockup.
            var config = Substitute.For<IPoolConfig>();
            config.Daemon.Valid.Returns(true);

            // initialize hash algorithm
            var hashAlgorithm = Substitute.For<IHashAlgorithm>();
            _hashAlgorithmFactory.Get(config.Coin.Algorithm).Returns(hashAlgorithm);

            // initialize the miner manager.
            _minerManagerFactory.Get(_daemonClient);

            // initialize storage manager
            _storageManagerFactory.Get(Storages.Redis);

            // initialize the job tracker
            _jobTrackerFactory.Get();

            // initialize share manager.
            _shareManagerFactory.Get(_daemonClient, _jobTracker, _storage).Returns(_shareManager);

            // initalize job manager.
            _jobManagerFactory.Get(_daemonClient, _jobTracker, _shareManager, _minerManager, hashAlgorithm).Returns(_jobManager);
            _jobManager.Initialize(pool.InstanceId);

            // init daemon client
            _daemonClient.Initialize(config.Daemon);

            // init server
            _serverFactory.Get(Services.Stratum, pool, _minerManager, _jobManager).Returns(_miningServer);

            // init service
            _serviceFactory.Get(Services.Stratum, _shareManager, _daemonClient).Returns(_rpcService);

            // initalize the server.
            _miningServer.Initialize(config.Stratum);

            // initialize the pool.
            pool.Initialize(config);
        }
Esempio n. 3
0
        public void ConstructorTest_NonNullParams_ShouldSucceed()
        {
            var pool = new Coinium.Mining.Pools.Pool(
                _hashAlgorithmFactory,
                _serverFactory,
                _serviceFactory,
                _daemonClient,
                _minerManagerFactory,
                _jobTrackerFactory,
                _jobManagerFactory,
                _shareManagerFactory,
                _storageManagerFactory,
                _globalConfigFactory);

            pool.Should().Not.Be.Null();
            pool.InstanceId.Should().Be.GreaterThan((UInt32)0);
        }