Beispiel #1
0
        public void ListAtomConstructorTest()
        {
            var atom = new ListAtom();

            atom.Should().NotBeNull();
            atom.Type.Should().Be(AtomType.List);
        }
Beispiel #2
0
        private static void InitDatabaseLoaders(DictionaryAtom initAtom)
        {
            var loaderArgs = new ListAtom();

            {
                var loaderDbo = new DictionaryAtom();
                loaderDbo.Set("Catalog", "Realm");
                loaderDbo.Set("Schema", "dbo");
                loaderDbo.Set("Prefix", "game");
                loaderArgs.Add(loaderDbo);
            }
            {
                var loaderLive = new DictionaryAtom();
                loaderLive.Set("Catalog", "Realm");
                loaderLive.Set("Schema", "live");
                loaderLive.Set("Prefix", "game");
                loaderArgs.Add(loaderLive);
            }
            {
                var loaderRef = new DictionaryAtom();
                loaderRef.Set("Catalog", "Realm");
                loaderRef.Set("Schema", "ref");
                loaderRef.Set("Prefix", "cp");
                loaderArgs.Add(loaderRef);
            }
            {
                var loaderAdmin = new DictionaryAtom();
                loaderAdmin.Set("Catalog", "Realm");
                loaderAdmin.Set("Schema", "admin");
                loaderAdmin.Set("Prefix", "cp");
                loaderArgs.Add(loaderAdmin);
            }
            initAtom.Set("Loaders", loaderArgs);
        }
Beispiel #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="commandResults"></param>
        /// <param name="subListName"></param>
        private void AddToSubList(IEnumerable <Atom> commandResults, string subListName)
        {
            var itResult = commandResults.GetEnumerator();

            while (itResult.MoveNext())
            {
                var result = itResult.Current.CastAs <DictionaryAtom>();
                var def    = Repository.GetSubtype(SystemType.GetValue(), result.GetInt(IdColumn).ToString(CultureInfo.InvariantCulture));
                if (def.IsNull())
                {
                    throw new ObjectNotFoundException(string.Format(Resources.ERR_PRIMITIVE_NOT_FOUND, result.GetInt(IdColumn)));
                }

                var newsubList = false;
                var subList    = def.Def.GetAtom <ListAtom>(subListName);
                if (subList.IsNull())
                {
                    subList    = new ListAtom();
                    newsubList = true;
                }

                subList.Add(result);
                if (newsubList)
                {
                    def.Def.Set(subListName, subList);
                }
            }
        }
Beispiel #4
0
        public void ListAtomGetBoolTest()
        {
            var listAtom = new ListAtom {
                false, true, false
            };

            listAtom.GetBool(1).Should().BeTrue();
        }
Beispiel #5
0
        public void ListAtomGetRealTest()
        {
            var listAtom = new ListAtom {
                12.5f, 25.0f, 37.5f
            };

            listAtom.GetReal(1).Should().Be(25.0f);
        }
Beispiel #6
0
        public void ListAtomGetBoolInvalidTest()
        {
            var listAtom = new ListAtom {
                false, "test", false
            };

            listAtom.GetBool(1).Should().BeFalse();
        }
Beispiel #7
0
        public void ListAtomGetRealInvalidTest()
        {
            var listAtom = new ListAtom {
                12.5f, "test", 37.5f
            };

            listAtom.GetReal(1).Should().Be(0.0f);
        }
Beispiel #8
0
        public void ListAtomGetIntInvalidTest()
        {
            var listAtom = new ListAtom {
                15, "test", 35
            };

            listAtom.GetInt(1).Should().Be(0);
        }
Beispiel #9
0
        public void ListAtomCountTest()
        {
            var atom = new ListAtom {
                15, 25
            };

            atom.Count.Should().Be(2);
        }
Beispiel #10
0
        public void ListAtomSetLongTest()
        {
            const long value    = 2500;
            var        listAtom = new ListAtom {
                value
            };

            listAtom.GetInt(0).Should().Be((int)value);
        }
Beispiel #11
0
        public void ListAtomGetIntTest()
        {
            var listAtom = new ListAtom {
                15, 25, 35
            };

            listAtom.Count.Should().Be(3);
            listAtom.GetInt(1).Should().Be(25);
        }
Beispiel #12
0
        public void ListAtomGetStringInvalidTest()
        {
            var listAtom = new ListAtom {
                "test1", 25, "test3"
            };

            listAtom.Count.Should().Be(3);
            string.IsNullOrEmpty(listAtom.GetString(1)).Should().BeTrue();
        }
Beispiel #13
0
        public void ListAtomGetStringTest()
        {
            var listAtom = new ListAtom {
                "test1", "test2", "test3"
            };

            listAtom.Count.Should().Be(3);
            listAtom.GetString(1).Should().Be("test2");
        }
Beispiel #14
0
        public void ListAtomSetDoubleTest()
        {
            const double value    = 250.52D;
            var          listAtom = new ListAtom {
                value
            };

            listAtom.GetReal(0).Should().Be(value);
        }
Beispiel #15
0
        public void ListAtomDumpNullParameterTest()
        {
            var atom = new ListAtom();

            const string prefix = "Test";

            Action act = () => atom.Dump(null, prefix);

            act.Should().Throw <ArgumentNullException>();
        }
Beispiel #16
0
        public void ListAtomGetObjectInvalidTest()
        {
            var obj1     = new object();
            var obj2     = new object();
            var listAtom = new ListAtom {
                obj1, "test", obj2
            };

            listAtom.GetObject(1).Should().BeNull();
        }
Beispiel #17
0
        public void ListAtomGetObjectTest()
        {
            var obj1     = new object();
            var obj2     = new object();
            var obj3     = new object();
            var listAtom = new ListAtom {
                obj1, obj2, obj3
            };

            listAtom.GetObject(1).Should().Be(obj2);
        }
Beispiel #18
0
        public void ListAtomGetListInvalidTest()
        {
            var atom1 = new ListAtom {
                "Tester tester 1 2 3"
            };
            var listAtom = new ListAtom {
                atom1, "test"
            };

            listAtom.GetList(1).Should().BeNull();
        }
Beispiel #19
0
        public void ListAtomClearTest()
        {
            var atom = new ListAtom {
                15, 25
            };

            atom.Count.Should().Be(2);

            atom.Clear();

            atom.Count.Should().Be(0);
        }
Beispiel #20
0
        public void ListAtomGetDictionaryInvalidTest()
        {
            var atom1 = new DictionaryAtom();

            atom1.Set("Test1", "Tester tester 1 2 3");

            var listAtom = new ListAtom {
                atom1, "test"
            };

            listAtom.GetDictionary(1).Should().BeNull();
        }
        /// <summary>
        /// Executes the provided transaction
        /// </summary>
        private TransactionResponse ExecuteNextTransaction(CancellationToken token, PendingTransaction transaction)
        {
            Validation.IsNotNull(token, "token");
            Validation.IsNotNull(transaction, "transaction");

            token.ThrowIfCancellationRequested();

            var success        = true;
            var commandResults = new ListAtom();

            transaction.State = TransactionState.Executing;
            var sqlTransaction = _connection.BeginTransaction();

            try
            {
                using (var it = transaction.DbCommands.GetEnumerator())
                {
                    while (it.MoveNext())
                    {
                        var dbCommand = it.Current.CastAs <DictionaryAtom>();
                        if (!success)
                        {
                            continue;
                        }
                        var resultSet = ExecuteProcedure(dbCommand);
                        if (resultSet == null || (resultSet.ContainsKey("success") && !resultSet.GetBool("success")))
                        {
                            success = false;
                        }

                        commandResults.Add(resultSet ?? new DictionaryAtom());
                    }
                }
            }
            catch (SqlException ex)
            {
                ex.Handle(ExceptionHandlingOptions.RecordOnly, _log);
                success = false;
            }
            finally
            {
                TryRollbackOrCommit(sqlTransaction, success);
            }

            SetResultSetSuccess(commandResults, success);

            return(new TransactionResponse
            {
                Success = success,
                CommandResults = commandResults
            });
        }
        /// <summary>
        /// Converts a datatable to a listatom
        /// </summary>
        /// <param name="table"></param>
        /// <returns></returns>
        public static ListAtom ToListAtom(this DataTable table)
        {
            var resultList = new ListAtom();

            table.Rows.OfType <DataRow>().ToList().ForEach(row =>
            {
                var rowResult = new DictionaryAtom();
                table.Columns.OfType <DataColumn>().ToList().ForEach(col => rowResult.Set(col.ColumnName, row[col]));
                resultList.Add(rowResult);
            });

            return(resultList);
        }
Beispiel #23
0
        public void ListAtomGetListTest()
        {
            var atom1 = new ListAtom {
                "Tester tester 1 2 3"
            };
            var atom2 = new ListAtom {
                "This is a big test"
            };
            var listAtom = new ListAtom {
                atom1, atom2
            };

            listAtom.GetList(1).Should().BeSameAs(atom2);
        }
Beispiel #24
0
        /// <summary>
        /// Do initialization that cannot be done at construction
        /// </summary>
        public void OnInit(DictionaryAtom args)
        {
            Validation.IsNotNull(args, "args");

            _connectionString = args.GetString("ConnectionString");
            Validation.IsNotNullOrEmpty(_connectionString, "_connectionString");

            _numberServers = args.GetInt("NumberDBServers");
            Validation.Validate <ArgumentOutOfRangeException>(_numberServers >= 1);
            _log.DebugFormat("{0} asked to spin up {1} database servers.", GetType(), _numberServers);

            InitDatabaseLoaders(args);
            _loaderArgs = args.GetAtom <ListAtom>("Loaders");

            _eventManager.RegisterListener(this, typeof(OnGameInitialize), Instance_OnGameInitialize);
        }
Beispiel #25
0
        public void ListAtomGetDictionaryTest()
        {
            var atom1 = new DictionaryAtom();

            atom1.Set("Test1", "Tester tester 1 2 3");

            var atom2 = new DictionaryAtom();

            atom2.Set("Test2", "This is a big test");

            var listAtom = new ListAtom {
                atom1, atom2
            };

            listAtom.GetDictionary(1).Should().Be(atom2);
        }
Beispiel #26
0
        public void ListAtomGetAtomTest()
        {
            var atom1    = new IntAtom(15);
            var atom2    = new IntAtom(25);
            var atom3    = new IntAtom(35);
            var listAtom = new ListAtom {
                atom1, atom2, atom3
            };

            listAtom.Count.Should().Be(3);

            var actual = listAtom.Get(1);

            actual.Should().NotBeNull();
            actual.Should().Be(atom2);
        }
Beispiel #27
0
        public void ListAtomDumpTest()
        {
            var callback = false;

            var logger = A.Fake <ILogWrapper>();

            A.CallTo(() => logger.InfoFormat(A <string> .Ignored, A <object> .Ignored))
            .Invokes(() => callback = true);

            var atom = new ListAtom();

            const string prefix = "Test";

            atom.Dump(logger, prefix);

            callback.Should().BeTrue();
        }
Beispiel #28
0
        public void SetListAtom()
        {
            var listAtom = new ListAtom {
                "1 2 3 4 5"
            };

            var atom = new DictionaryAtom();

            atom.Set("TestList", listAtom);

            atom.ContainsKey("TestList").Should().BeTrue();

            var foundAtom = atom.GetAtom <ListAtom>("TestList");

            foundAtom.Should().NotBeNull();
            foundAtom.Should().BeAssignableTo <ListAtom>();
            foundAtom.GetString(0).Should().Be("1 2 3 4 5");
        }
Beispiel #29
0
        public void ListAtomGetEnumeratorTest()
        {
            var listAtom = new ListAtom {
                15, 25, 35
            };

            var enumerator = listAtom.GetEnumerator();

            enumerator.Should().NotBeNull();

            var runningTotal = 0;

            while (enumerator.MoveNext())
            {
                var valueAtom = (IntAtom)enumerator.Current;
                runningTotal += valueAtom.Value;
            }

            runningTotal.Should().Be(75);
        }