예제 #1
0
        public void Initialize_With_Character_Range_Parses_Expected_Lower_Band()
        {
            var sut = new SharedDomainModel(new ModelModel(), new ModelName("A domain"), new SharedDomainExpressionModel("    'a'..'z'     "));
            var rangeExpressionNode = (RangeDomainExpressionNode)sut.Expression.Node.Inner;

            Assert.That(rangeExpressionNode.RightExpression, Is.InstanceOf <BandExpressionNode>());
        }
예제 #2
0
        public void Initialize_With_Raw_Expression_Parses_Expected_Upper_Band()
        {
            var sut = new SharedDomainModel(new ModelModel(), new ModelName("A domain"), new SharedDomainExpressionModel("    1..9     "));
            var rangeExpressionNode = (RangeDomainExpressionNode)sut.Expression.Node.Inner;

            Assert.That(rangeExpressionNode.LeftExpression, Is.InstanceOf <BandExpressionNode>());
        }
        public void Initialize_With_Raw_Expression_Parses_Expected_Lower_Band()
        {
            var sut = new SharedDomainModel(WorkspaceModelFactory.Create().Model, new ModelName("A domain"), new SharedDomainExpressionModel("    1..9     "));
            var rangeExpressionNode = (RangeDomainExpressionNode)sut.Expression.Node.Inner;

            Assert.That(rangeExpressionNode.RightExpression, Is.InstanceOf <BandExpressionNode>());
        }
예제 #4
0
        public SharedDomainModelItemViewModel MapFrom(SharedDomainModel theDomainModel)
        {
            Debug.Assert(theDomainModel.HasIdentity);

            var domainViewModel = new SharedDomainModelItemViewModel(theDomainModel, _windowManager);

            return(domainViewModel);
        }
 public SharedDomainModelItemViewModel(SharedDomainModel theDomain, IWindowManager theWindowManager)
     : base(theDomain)
 {
     Validator      = new SharedDomainModelItemViewModelValidator();
     Domain         = theDomain;
     DisplayName    = theDomain.Name;
     ExpressionText = theDomain.Expression.Text;
     _windowManager = theWindowManager;
 }
예제 #6
0
        public void Initialize_With_List_Expression_Parses_Expected_Inner()
        {
            var sut = new SharedDomainModel(new ModelModel(), new ModelName("A domain"), new SharedDomainExpressionModel("\"rita\", \"sue\", \"bob\""));
            var rangeExpressionNode = (ListDomainExpressionNode)sut.Expression.Node.Inner;

            Assert.That(rangeExpressionNode.Items.Values, Is.All.Not.Null);
            Assert.That(rangeExpressionNode.Items.Values, Is.All.InstanceOf <ItemNameNode>());
            Assert.That(rangeExpressionNode.Items.Values, Has.Count.EqualTo(3));
        }
        public WorkspaceBuilder WithSharedDomain(string newDomainName, string newDomainExpression)
        {
            if (string.IsNullOrWhiteSpace(newDomainName))
            {
                throw new ArgumentException(nameof(newDomainName));
            }

            if (string.IsNullOrWhiteSpace(newDomainExpression))
            {
                throw new ArgumentException(nameof(newDomainExpression));
            }

            var newDomain = new SharedDomainModel(_model, new ModelName(newDomainName), new SharedDomainExpressionModel(newDomainExpression));

            _model.AddSharedDomain(newDomain);

            return(this);
        }
        internal void Read(XmlNodeList domainNodeList)
        {
            for (var i = 0; i < domainNodeList.Count; i++)
            {
                var domainNode = domainNodeList[i];
                switch (domainNode.Name)
                {
                case "domain":
                    var domainIdAttribute = domainNode.Attributes["id"];
                    var domainId          = domainIdAttribute.Value;
                    var domainName        = string.Empty;
                    var expression        = string.Empty;
                    for (var z = 0; z < domainNode.ChildNodes.Count; z++)
                    {
                        var childNode = domainNode.ChildNodes[z];
                        switch (childNode.Name)
                        {
                        case "name":
                            domainName = childNode.InnerText;
                            break;

                        case "expression":
                            expression = childNode.InnerText;
                            break;
                        }
                    }

                    var domainModel = new SharedDomainModel(_model, new ModelName(domainName), new SharedDomainExpressionModel(expression));
                    domainModel.Id = Convert.ToInt32(domainId);
                    _model.AddSharedDomain(domainModel);
                    break;

                default:
                    throw new NotImplementedException();
                }
            }
        }