Exemplo n.º 1
0
        public void TestChangeMeepleNegativeStartField()
        {
            GameTable       gameTable  = _hub.GetGeneratedGameTable(TableId);
            PlayerFieldArea greenArea  = gameTable.PlayerFieldAreas.Find(area => area.ColorCode == ColorCode.Green);
            PlayerFieldArea blueArea   = gameTable.PlayerFieldAreas.Find(area => area.ColorCode == ColorCode.Blue);
            StandardField   startField = greenArea.Fields[10] as StandardField;
            StartField      endField   = greenArea.Fields.Find(field => field.FieldType.Contains("StartField")) as StartField;
            Meeple          meeple1    = greenArea.Meeples[0];
            Meeple          meeple2    = blueArea.Meeples[0];

            meeple2.IsStartFieldBlocked = true;
            startField.CurrentMeeple    = meeple1;
            endField.CurrentMeeple      = meeple2;
            MeepleMove meepleMove = new MeepleMove()
            {
                Meeple          = meeple1,
                MoveDestination = endField
            };
            CardMove cardMove = new CardMove()
            {
                Card = _cardChange,
                SelectedAttribute = CardAttributeChangePlace
            };

            Assert.AreEqual(false, Validation.ValidateMove(meepleMove, cardMove));
        }
Exemplo n.º 2
0
        public void TestChangeMeeplePositive()
        {
            GameTable       gameTable  = _hub.GetGeneratedGameTable(TableId);
            PlayerFieldArea greenArea  = gameTable.PlayerFieldAreas.Find(area => area.ColorCode == ColorCode.Green);
            PlayerFieldArea blueArea   = gameTable.PlayerFieldAreas.Find(area => area.ColorCode == ColorCode.Blue);
            StandardField   startField = greenArea.Fields[10] as StandardField;
            StandardField   endField   = greenArea.Fields[14] as StandardField;
            Meeple          meeple1    = greenArea.Meeples[0];
            Meeple          meeple2    = blueArea.Meeples[0];

            startField.CurrentMeeple = meeple1;
            endField.CurrentMeeple   = meeple2;
            MeepleMove meepleMove = new MeepleMove()
            {
                Meeple          = meeple1,
                MoveDestination = endField
            };
            CardMove cardMove = new CardMove()
            {
                Card = _cardJoker,
                SelectedAttribute = CardAttributeChangePlace
            };

            Assert.AreEqual(true, Validation.ValidateMove(meepleMove, cardMove));
        }
Exemplo n.º 3
0
        public void TestCanMoveToEndFieldsBug340()
        {
            GameTable table  = MakeInitialGameTable;
            Meeple    meeple = new Meeple(new KennelField(77), ColorCode.Yellow)
            {
                IsStartFieldBlocked = false
            };
            StandardField standardField = (StandardField)table.PlayerFieldAreas.Find(area => area.ColorCode == ColorCode.Yellow).Fields[0];

            standardField.CurrentMeeple = meeple;
            Assert.AreEqual(true, Validation.CanMoveToEndFields(standardField, 5, meeple.ColorCode));
        }
Exemplo n.º 4
0
        public void TestProveChangePlaceStandardField()
        {
            Meeple meeple  = new Meeple(new KennelField(1), ColorCode.Blue);
            Meeple meeple2 = new Meeple(new KennelField(2), ColorCode.Green);

            meeple.CurrentPosition = new StandardField(2);
            StandardField field2 = new StandardField(3)
            {
                CurrentMeeple = meeple2
            };

            Assert.AreEqual(true, Validation.ProveChangePlace(meeple, field2));
        }
Exemplo n.º 5
0
        public void TestProveValueCardStandardFieldOverStartNotBlocked()
        {
            GameTable table   = MakeInitialGameTable;
            Meeple    meeple  = new Meeple(new KennelField(1), ColorCode.Blue);
            Meeple    meeple2 = new Meeple(new KennelField(2), ColorCode.Blue)
            {
                IsStartFieldBlocked = false
            };
            StartField startField = (StartField)table.PlayerFieldAreas.Find(area => area.ColorCode == ColorCode.Blue).Fields.Find(field => field.FieldType.Contains("StartField"));

            startField.CurrentMeeple = meeple2;
            StandardField standardField = (StandardField)table.PlayerFieldAreas.Find(area => area.ColorCode == ColorCode.Blue).Fields.Find(field => field.FieldType.Contains("StandardField"));

            standardField.CurrentMeeple = meeple;
            Assert.AreEqual(true, Validation.ProveValueCard(meeple, (StartField)table.PlayerFieldAreas.Find(area => area.ColorCode == ColorCode.Blue).Fields[4], 4));
        }
Exemplo n.º 6
0
        public void TestHasBlockedFieldBackwards()
        {
            GameTable table   = MakeInitialGameTable;
            Meeple    meeple  = new Meeple(new KennelField(1), ColorCode.Blue);
            Meeple    meeple2 = new Meeple(new KennelField(2), ColorCode.Blue)
            {
                IsStartFieldBlocked = true
            };
            StartField startField = (StartField)table.PlayerFieldAreas.Find(area => area.ColorCode == ColorCode.Blue).Fields.Find(field => field.FieldType.Contains("StartField"));

            startField.CurrentMeeple = meeple2;
            StandardField standardField =
                (StandardField)table.PlayerFieldAreas.Find(area => area.ColorCode == ColorCode.Blue).Fields[5];

            standardField.CurrentMeeple = meeple;
            Assert.AreEqual(true, Validation.HasBlockedField(standardField, -4));
        }
Exemplo n.º 7
0
        public void TestCanMoveToEndFieldsToManyFields()
        {
            GameTable table   = MakeInitialGameTable;
            Meeple    meeple  = new Meeple(new KennelField(1), ColorCode.Blue);
            Meeple    meeple2 = new Meeple(new KennelField(2), ColorCode.Blue)
            {
                IsStartFieldBlocked = false
            };
            StartField startField = (StartField)table.PlayerFieldAreas.Find(area => area.ColorCode == ColorCode.Blue).Fields.Find(field => field.FieldType.Contains("StartField"));

            startField.CurrentMeeple = meeple2;
            StandardField standardField =
                (StandardField)table.PlayerFieldAreas.Find(area => area.ColorCode == ColorCode.Blue).Fields[3];

            standardField.CurrentMeeple = meeple;
            Assert.AreEqual(false, Validation.CanMoveToEndFields(standardField, 7, meeple.ColorCode));
        }
Exemplo n.º 8
0
        /// <summary>
        /// 从DataRow生成Field对象
        /// </summary>
        /// <param name="rowField"></param>
        /// <returns></returns>
        public static StandardField GetFieldFromDataRow(DataRow rowField)
        {
            if (rowField == null)
            {
                return(null);
            }

            StandardField lyr = new StandardField();

            lyr.LayerID     = Convert.ToInt32(rowField["LayerID"]);
            lyr.Name        = rowField["FieldCode"] as string;
            lyr.AliasName   = rowField["FieldName"] as string;
            lyr.Length      = Convert.ToInt32(rowField["Length"]);
            lyr.Description = rowField["FieldDesc"] as string;
            lyr.OrderIndex  = Convert.ToInt32(rowField["FldSeqID"]);
            lyr.Type        = Convert.ToInt32(rowField["FieldType"]);

            return(lyr);
        }
Exemplo n.º 9
0
        public void TestLeaveKennelNotAllowed()
        {
            GameTable       gameTable  = _hub.GetGeneratedGameTable(TableId);
            PlayerFieldArea greenArea  = gameTable.PlayerFieldAreas.Find(area => area.ColorCode == ColorCode.Green);
            StandardField   startField = greenArea.Fields[10] as StandardField;
            StandardField   endField   = greenArea.Fields[14] as StandardField;
            Meeple          meeple     = greenArea.Meeples[0];

            meeple.CurrentPosition = startField;
            MeepleMove meepleMove = new MeepleMove()
            {
                Meeple          = meeple,
                MoveDestination = endField
            };
            CardMove cardMove = new CardMove()
            {
                Card = _card13,
                SelectedAttribute = CardAttributeLeaveKennel
            };

            Assert.AreEqual(false, Validation.ValidateMove(meepleMove, cardMove));
        }
Exemplo n.º 10
0
            protected override string GetFieldName(StandardField key)
            {
                switch (key)
                {
                case StandardField.Title:
                    return(PwDefs.TitleField);

                case StandardField.UserName:
                    return(PwDefs.UserNameField);

                case StandardField.Password:
                    return(PwDefs.PasswordField);

                case StandardField.Url:
                    return(PwDefs.UrlField);

                case StandardField.Notes:
                    return(PwDefs.NotesField);

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }
Exemplo n.º 11
0
        public void TestMovedInOtherFieldAreaPositive()
        {
            GameTable       gameTable  = _hub.GetGeneratedGameTable(TableId);
            PlayerFieldArea startArea  = gameTable.PlayerFieldAreas.Find(area => area.ColorCode == ColorCode.Green);
            PlayerFieldArea targeArea  = gameTable.PlayerFieldAreas.Find(area => area.ColorCode == ColorCode.Yellow);
            StandardField   startField = startArea.Fields[14] as StandardField;
            StandardField   endField   = targeArea.Fields[2] as StandardField;
            Meeple          meeple     = startArea.Meeples[0];

            meeple.CurrentPosition = startField;
            MeepleMove meepleMove = new MeepleMove()
            {
                Meeple          = meeple,
                MoveDestination = endField
            };
            CardMove cardMove = new CardMove()
            {
                Card = _card4,
                SelectedAttribute = CardAttributeThirteenFields
            };

            Assert.AreEqual(true, Validation.ValidateMove(meepleMove, cardMove));
        }
Exemplo n.º 12
0
        private static IEnumerable <Field> TemplateFields(FieldCollection templateFields, TemplateModel model)
        {
            foreach (FieldElement fieldElement in templateFields)
            {
                String key   = fieldElement.Key;
                Field  field = null;

                switch (fieldElement.Type)
                {
                case FieldType.Standard:
                    StandardField standardField = new StandardField();
                    standardField.Value = model.GetField(key, FieldAttribute.Value, fieldElement.Value.Value);

                    field = standardField;
                    break;

                case FieldType.Date:
                    DateField dateField = new DateField();

                    if (fieldElement.DateStyle != FieldDateTimeStyle.Unspecified)
                    {
                        dateField.DateStyle = fieldElement.DateStyle;
                    }

                    if (fieldElement.TimeStyle != FieldDateTimeStyle.Unspecified)
                    {
                        dateField.TimeStyle = fieldElement.TimeStyle;
                    }

                    if (fieldElement.IgnoresTimeZone.HasValue)
                    {
                        dateField.IgnoresTimeZone = fieldElement.IgnoresTimeZone.Value;
                    }

                    if (fieldElement.IsRelative.HasValue)
                    {
                        dateField.IsRelative = fieldElement.IsRelative.Value;
                    }

                    DateTime dateValue;

                    if (!DateTime.TryParse(fieldElement.Value.Value, out dateValue))
                    {
                        dateValue = DateTime.MinValue;
                    }

                    dateField.Value = model.GetField <DateTime>(key, FieldAttribute.Value, dateValue);

                    field = dateField;
                    break;

                case FieldType.Number:
                    NumberField numberField = new NumberField();

                    if (fieldElement.NumberStyle != FieldNumberStyle.Unspecified)
                    {
                        numberField.NumberStyle = fieldElement.NumberStyle;
                    }

                    numberField.CurrencyCode = model.GetField(key, FieldAttribute.CurrencyCode, fieldElement.CurrencyCode.Value);

                    Decimal decimalValue;

                    if (!Decimal.TryParse(fieldElement.Value.Value, out decimalValue))
                    {
                        decimalValue = 0;
                    }

                    numberField.Value = model.GetField <Decimal>(key, FieldAttribute.Value, decimalValue);

                    field = numberField;
                    break;
                }

                field.Key = fieldElement.Key;

                field.DataDetectorTypes = fieldElement.DataDetectorTypes;

                if (field.TextAlignment != FieldTextAlignment.Unspecified)
                {
                    field.TextAlignment = fieldElement.TextAlignment;
                }

                field.Label           = model.GetField(key, FieldAttribute.Label, fieldElement.Label.Value);
                field.AttributedValue = model.GetField(key, FieldAttribute.AttributedValue, fieldElement.AttributedValue.Value);
                field.ChangeMessage   = model.GetField(key, FieldAttribute.ChangeMessage, fieldElement.ChangeMessage.Value);

                yield return(field);
            }
        }