コード例 #1
0
ファイル: Presenter.cs プロジェクト: simonlaroche/machine
 protected virtual void PresentContext(ContextElement element,
                                   IPresentableItem item,
                                   TreeModelNode modelNode,
                                   PresentationState state)
 {
     PresentItem(item, element, state, UnitTestElementImage.TestContainer);
 }
コード例 #2
0
 public void Present(IUnitTestElement element, IPresentableItem item, TreeModelNode node, PresentationState state)
 {
     if (element is NBehaveUnitTestElementBase)
     {
         presenter.UpdateItem(element, node, item, state);
     }
 }
コード例 #3
0
ファイル: Presenter.cs プロジェクト: simonlaroche/machine
 protected virtual void PresentSpecification(FieldElement element,
                                         IPresentableItem item,
                                         TreeModelNode modelNode,
                                         PresentationState state)
 {
     PresentItem(item, element, state, UnitTestElementImage.Test);
 }
コード例 #4
0
 protected virtual void PresentBehaviorSpecification(BehaviorSpecificationElement element,
                                                     IPresentableItem item,
                                                     TreeModelNode modelNode,
                                                     PresentationState state)
 {
     PresentItem(item, element, state, UnitTestElementImage.Test);
 }
 public void Present(IUnitTestElement element, IPresentableItem item, TreeModelNode node, PresentationState state)
 {
     if (element is Element)
     {
         this._presenter.UpdateItem(element, node, item, state);
     }
 }
コード例 #6
0
        protected virtual void PresentTestFixture(CSUnitTestFixtureElement value, IPresentableItem item,
                                                  TreeModelNode modelNode, PresentationState state)
        {
            item.Clear();
            if (IsNodeParentNatural(modelNode, value))
            {
                item.RichText = new CLRTypeName(value.GetTypeClrName()).ShortName;
            }
            else
            {
                var name = new CLRTypeName(value.GetTypeClrName());
                if (string.IsNullOrEmpty(name.NamespaceName))
                {
                    item.RichText = string.Format("{0}", name.ShortName);
                }
                else
                {
                    item.RichText = string.Format("{0}.{1}", name.NamespaceName, name.ShortName);
                }
            }

            Image typeImage  = UnitTestManager.GetStandardImage(UnitTestElementImage.TestContainer);
            Image stateImage = UnitTestManager.GetStateImage(state);

            if (stateImage != null)
            {
                item.Images.Add(stateImage);
            }
            else if (typeImage != null)
            {
                item.Images.Add(typeImage);
            }
            AppendOccurencesCount(item, modelNode, "test");
        }
コード例 #7
0
        static void PresentItem(IPresentableItem item, Element element, PresentationState state, UnitTestElementImage type)
        {
            item.RichText = element.GetTitle();

            SetTextColor(item, element);
            SetImage(item, state, type);
        }
コード例 #8
0
 protected virtual void PresentBehavior(BehaviorElement element,
                                        IPresentableItem item,
                                        TreeModelNode modelNode,
                                        PresentationState state)
 {
     PresentItem(item, element, state, UnitTestElementImage.TestContainer);
 }
コード例 #9
0
        protected virtual void PresentTest(CSUnitTestElement value, IPresentableItem item, TreeModelNode modelNode,
                                           PresentationState state)
        {
            item.Clear();
            if (value.Fixture.GetTypeClrName() != value.GetTypeClrName())
            {
                item.RichText = string.Format("{0}.{1}", new CLRTypeName(value.GetTypeClrName()).ShortName, value.MethodName);
            }
            else
            {
                item.RichText = value.MethodName;
            }

            if (value.IsExplicit)
            {
                item.RichText.SetForeColor(SystemColors.GrayText);
            }

            Image typeImage  = UnitTestManager.GetStandardImage(UnitTestElementImage.Test);
            Image stateImage = UnitTestManager.GetStateImage(state);

            if (stateImage != null)
            {
                item.Images.Add(stateImage);
            }
            else if (typeImage != null)
            {
                item.Images.Add(typeImage);
            }
        }
コード例 #10
0
    static void PresentItem(IPresentableItem item, Element element, PresentationState state, UnitTestElementImage type)
    {
      item.RichText = element.GetTitle();

      SetTextColor(item, element);
      SetImage(item, state, type);
    }
コード例 #11
0
        private void PresentAdorements(object value, IPresentableItem item, TreeModelNode structureElement,
                                       PresentationState state)
        {
            // Emphasize root element
            var element = value as IDeclaredElement;

            if (element == null)
            {
                var envoy = value as DeclaredElementEnvoy <ITypeElement>;
                if (envoy != null)
                {
                    element = envoy.GetValidDeclaredElement();
                }
            }
            if (Equals(element, TypeElement))
            {
                item.RichText.SetStyle(FontStyle.Bold);
            }

            // Recursion was stopped, i.e. same type member appeared higher in the chain

/*
 *    if ((modelNode.Modifiers & TreeModelNodeModifiers.Recursive) != TreeModelNodeModifiers.None)
 *      item.Images.Add(ourRecursionImage, "Recursive inheritance", ImagePlacement.RIGHT);
 */
        }
コード例 #12
0
 public void Present(IUnitTestElement element, IPresentableItem item, TreeModelNode node, PresentationState state)
 {
     if (element is ChildTestElement)
     {
         node.Model.Comparer = _comparer;
     }
 }
 public void Present(IUnitTestElement element, IPresentableItem item, TreeModelNode node, PresentationState state)
 {
     if (element is Element)
     {
         this._presenter.UpdateItem(element, node, item, state);
     }
 }
コード例 #14
0
 public void Present(IUnitTestElement element, IPresentableItem item, TreeModelNode node, PresentationState state)
 {
     if (!(element is TestClassElement))
     {
         return;
     }
     treePresenter.UpdateItem(element, node, item, state);
 }
コード例 #15
0
        public string GetDescription(IPresentableItem item)
        {
            var description = this.itemPresenter.GetDescription(item);
            var markdown = new Markdown();
            var transformedDescription = markdown.Transform(description);

            return transformedDescription;
        }
コード例 #16
0
        public string GetDescription(IPresentableItem item)
        {
            var description            = this.itemPresenter.GetDescription(item);
            var markdown               = new Markdown();
            var transformedDescription = markdown.Transform(description);

            return(transformedDescription);
        }
コード例 #17
0
 private void PresentClassElement(XunitTestClassElement value, IPresentableItem item, TreeModelNode modelNode, PresentationState state)
 {
     if (IsNodeParentNatural(modelNode, value))
         item.RichText = value.TypeName.ShortName;
     else if (string.IsNullOrEmpty(value.TypeName.GetNamespaceName()))
         item.RichText = value.TypeName.ShortName;
     else
         item.RichText = string.Format("{0}.{1}", value.TypeName.GetNamespaceName(), value.TypeName.ShortName);
 }
コード例 #18
0
 public void Present(IUnitTestElement element, IPresentableItem item, TreeModelNode node, PresentationState state)
 {
     // We only want to customise how class elements are displayed. If the
     // parent node isn't a namespace, and isn't the namespace of the class,
     // display the class as namespace qualified
     if (!(element is XunitTestClassElement))
         return;
     treePresenter.UpdateItem(element, node, item, state);
 }
コード例 #19
0
 protected override void PresentObject(object value, IPresentableItem item, TreeModelNode modelNode, PresentationState state)
 {
     var association = value as FileAssociation;
       if (association != null)
       {
     RichText richText = association.Pattern ?? "(empty)";
     item.RichText = richText;
       }
 }
コード例 #20
0
        static void SetTextColor(IPresentableItem item, Element element)
        {
            if (element.Explicit)
            {
                item.RichText.SetForeColor(SystemColors.GrayText);
            }

            item.RichText.SetForeColor(SystemColors.GrayText, 0, element.GetTitlePrefix().Length);
        }
コード例 #21
0
    static void SetTextColor(IPresentableItem item, Element element)
    {
      if (element.Explicit)
      {
        item.RichText.SetForeColor(SystemColors.GrayText);
      }

      item.RichText.SetForeColor(SystemColors.GrayText, 0, element.GetTitlePrefix().Length);
    }
コード例 #22
0
        protected override void PresentObject(object value, IPresentableItem item, TreeModelNode modelNode, PresentationState state)
        {
            var association = value as FileAssociation;

            if (association != null)
            {
                RichText richText = association.Pattern ?? "(empty)";
                item.RichText = richText;
            }
        }
コード例 #23
0
        private void PresentFeature(NBehaveFeatureTestElement value, IPresentableItem item, TreeModelNode modelNode, PresentationState state)
        {
            TreeModelNode parentModel;

            if (_treeModels.TryGetValue(value, out parentModel) == false)
            {
                parentModel = modelNode.Parent;
                _treeModels.Add(value, parentModel);
            }
        }
コード例 #24
0
 public override void Present(
     StructuredPresenter <TreeModelNode, IPresentableItem> presenter,
     IPresentableItem item,
     TreeModelNode modelNode,
     PresentationState state
     )
 {
     item.RichText = GetDirectiveText();
     item.Images.Add(PsiWebThemedIcons.AspDirective.Id);
 }
コード例 #25
0
 public void Present(IUnitTestElement element, IPresentableItem item, TreeModelNode node, PresentationState state)
 {
     // We only want to customise how class elements are displayed. If the
     // parent node isn't a namespace, and isn't the namespace of the class,
     // display the class as namespace qualified
     if (!(element is XunitTestClassElement))
     {
         return;
     }
     treePresenter.UpdateItem(element, node, item, state);
 }
コード例 #26
0
		public override void Present(StructuredPresenter<TreeModelNode, IPresentableItem> presenter, IPresentableItem item,
			TreeModelNode modelNode, PresentationState state) {
			base.Present(presenter, item, modelNode, state);
			if (_element.InheritanceInformation != null)
				item.Images.Add(_element.InheritanceInformation.Image, _element.InheritanceInformation.ToolTip);
			else {
				// if the children have inheritance information, we must add en empty inheritance icon so that the text is aligned
				var structureDeclaredElement = _element.Parent as T4CSharpCodeStructureDeclaredElement;
				if (structureDeclaredElement != null && structureDeclaredElement.ChildrenWithInheritance)
					item.Images.Add(PsiServicesThemedIcons.Empty.Id);
			}
		}
コード例 #27
0
    static void SetImage(IPresentableItem item, PresentationState state, UnitTestElementImage imageType)
    {
      Image stateImage = UnitTestManager.GetStateImage(state);
      Image typeImage = UnitTestManager.GetStandardImage(imageType);

      if (stateImage != null)
      {
        item.Images.Add(stateImage);
      }
      else if (typeImage != null)
      {
        item.Images.Add(typeImage);
      }
    }
コード例 #28
0
        static void SetImage(IPresentableItem item, PresentationState state, UnitTestElementImage imageType)
        {
            Image stateImage = UnitTestManager.GetStateImage(state);
            Image typeImage  = UnitTestManager.GetStandardImage(imageType);

            if (stateImage != null)
            {
                item.Images.Add(stateImage);
            }
            else if (typeImage != null)
            {
                item.Images.Add(typeImage);
            }
        }
コード例 #29
0
        public void Present(UnitTestElement element, IPresentableItem item, TreeModelNode node, PresentationState state)
        {
            item.RichText = element.GetTitle();

            var standardImage = GetImage(element);
            var stateImage = UnitTestManager.GetStateImage(state);
            if (stateImage != null)
            {
                item.Images.Add(stateImage);
            }
            else if (standardImage != null)
            {
                item.Images.Add(standardImage);
            }
        }
コード例 #30
0
 private void PresentClassElement(XunitTestClassElement value, IPresentableItem item, TreeModelNode modelNode, PresentationState state)
 {
     if (IsNodeParentNatural(modelNode, value))
     {
         item.RichText = value.TypeName.ShortName;
     }
     else if (string.IsNullOrEmpty(value.TypeName.GetNamespaceName()))
     {
         item.RichText = value.TypeName.ShortName;
     }
     else
     {
         item.RichText = string.Format("{0}.{1}", value.TypeName.GetNamespaceName(), value.TypeName.ShortName);
     }
 }
コード例 #31
0
        /// <summary>
        /// Get actual domain name if available for domain products (registration, transfer), 
        /// otherwise get default default name from <see cref="Atomia.Store.Core.IProductProvider"/>
        /// </summary>
        public string GetName(IPresentableItem item)
        {
            var product = productProvider.GetProduct(item.ArticleNumber);
            var domainCategories = domainsProvider.GetDomainCategories();

            if (domainCategories.Any(dc => product.Categories.Any(c => c.Name == dc)))
            {
                var domainNameAttr = item.CustomAttributes.FirstOrDefault(ca => ca.Name == "DomainName");
                
                if (domainNameAttr != default(CustomAttribute)) {
                    return domainNameAttr.Value;
                }
            }

            return product.Name;
        }
コード例 #32
0
        private void PresentTestElement(GallioTestElement value, IPresentableItem item,
                                        TreeModelNode modelNode, PresentationState state)
        {
            item.Clear();

            item.RichText = value.TestName;

#if RESHARPER_60_OR_NEWER
            if (value.Explicit)
            {
                item.RichText.SetForeColor(SystemColors.GrayText);
            }

            var typeImage  = UnitTestIconManager.GetStandardImage(UnitTestElementImage.Test);
            var stateImage = UnitTestIconManager.GetStateImage(state);
            if (stateImage != null)
            {
                item.Images.Add(stateImage);
            }
            else if (typeImage != null)
            {
                item.Images.Add(typeImage);
            }
#else
            if (value.IsExplicit)
            {
                item.RichText.SetForeColor(SystemColors.GrayText);
            }

            Image image = UnitTestManager.GetStateImage(state);

            if (image == null)
            {
                image = UnitTestManager.GetStandardImage(value.IsTestCase ? UnitTestElementImage.Test : UnitTestElementImage.TestCategory);
            }

            if (image != null)
            {
                item.Images.Add(image);
            }

            if (!value.IsTestCase)
            {
                AppendOccurencesCount(item, modelNode, "test");
            }
#endif
        }
コード例 #33
0
        /// <summary>
        /// Get actual domain name if available for domain products (registration, transfer),
        /// otherwise get default default name from <see cref="Atomia.Store.Core.IProductProvider"/>
        /// </summary>
        public string GetName(IPresentableItem item)
        {
            var product          = productProvider.GetProduct(item.ArticleNumber);
            var domainCategories = domainsProvider.GetDomainCategories();

            if (domainCategories.Any(dc => product.Categories.Any(c => c.Name == dc)))
            {
                var domainNameAttr = item.CustomAttributes.FirstOrDefault(ca => ca.Name == "DomainName");

                if (domainNameAttr != default(CustomAttribute))
                {
                    return(domainNameAttr.Value);
                }
            }

            return(product.Name);
        }
コード例 #34
0
        protected override void PresentObject(object value, IPresentableItem item, TreeModelNode modelNode, PresentationState state)
        {
            if (modelNode.Parent == null)
            {
                item.RichText.Text = "Issues";
                item.Images.Add(ImageLoader.GetImage("youtrack-root"));
            }
            else
            {
                var issueItem = (IssueItem)value;

                item.RichText.Text = string.Format("[{0} - {1}] {2}", issueItem.Id, issueItem.State, issueItem.Summary);

                item.Images.Add(issueItem.Priority == IssueItemPriority.High
                                    ? ImageLoader.GetImage("issue-high-priority")
                                    : ImageLoader.GetImage("issue-low-priority"));
            }
        }
コード例 #35
0
        public void Present(UnitTestElement element, IPresentableItem item, TreeModelNode node, PresentationState state)
        {
            var testElement = element as StorEvilUnitTestElement;
            if (testElement == null)
                return;

            item.RichText = element.ShortName;

            Image standardImage = UnitTestManager.GetStandardImage(UnitTestElementImage.Test);
            Image stateImage = UnitTestManager.GetStateImage(state);
            if (stateImage != null)
            {
                item.Images.Add(stateImage);
            }
            else if (standardImage != null)
            {
                item.Images.Add(standardImage);
            }
        }
コード例 #36
0
        public override void Present(
            StructuredPresenter <TreeModelNode, IPresentableItem> presenter,
            IPresentableItem item,
            TreeModelNode modelNode,
            PresentationState state
            )
        {
            base.Present(presenter, item, modelNode, state);

            if (_element.InheritanceInformation != null)
            {
                item.Images.Add(_element.InheritanceInformation.Image, _element.InheritanceInformation.ToolTip);
            }
            // if the children have inheritance information, we must add en empty inheritance icon so that the text is aligned
            else if (_element.Parent is T4CSharpCodeStructureDeclaredElement structureDeclaredElement && structureDeclaredElement.ChildrenWithInheritance)
            {
                item.Images.Add(PsiServicesThemedIcons.Empty.Id);
            }
        }
コード例 #37
0
        private static void PresentTestElement(GallioTestElement value, IPresentableItem item, TreeModelNode modelNode, PresentationState state)
        {
            item.Clear();

            item.RichText = value.TestName;

            if (value.Explicit)
                item.RichText.SetForeColor(SystemColors.GrayText);

            var typeImage = UnitTestIconManager.GetStandardImage(UnitTestElementImage.Test);
            var stateImage = UnitTestIconManager.GetStateImage(state);
            if (stateImage != null)
            {
                item.Images.Add(stateImage);
            }
            else if (typeImage != null)
            {
                item.Images.Add(typeImage);
            }
        }
コード例 #38
0
            /// <summary>
            /// Presents unit test.
            ///</summary>
            public void Present(UnitTestElement element, IPresentableItem item, TreeModelNode node, PresentationState state)
            {
                if (element == null)
                {
                    throw new ArgumentNullException("element");
                }
                if (item == null)
                {
                    throw new ArgumentNullException("item");
                }
                if (node == null)
                {
                    throw new ArgumentNullException("node");
                }
                if (state == null)
                {
                    throw new ArgumentNullException("state");
                }

                presenter.UpdateItem(element, node, item, state);
            }
コード例 #39
0
        public void Present(UnitTestElement element, IPresentableItem item, TreeModelNode node, PresentationState state)
        {
            var testElement = element as StorEvilUnitTestElement;

            if (testElement == null)
            {
                return;
            }

            item.RichText = element.ShortName;

            Image standardImage = UnitTestManager.GetStandardImage(UnitTestElementImage.Test);
            Image stateImage    = UnitTestManager.GetStateImage(state);

            if (stateImage != null)
            {
                item.Images.Add(stateImage);
            }
            else if (standardImage != null)
            {
                item.Images.Add(standardImage);
            }
        }
コード例 #40
0
        private static void PresentTestElement(GallioTestElement value, IPresentableItem item, TreeModelNode modelNode, PresentationState state)
        {
            item.Clear();

            item.RichText = value.TestName;

            if (value.Explicit)
            {
                item.RichText.SetForeColor(SystemColors.GrayText);
            }

            var typeImage  = UnitTestIconManager.GetStandardImage(UnitTestElementImage.Test);
            var stateImage = UnitTestIconManager.GetStateImage(state);

            if (stateImage != null)
            {
                item.Images.Add(stateImage);
            }
            else if (typeImage != null)
            {
                item.Images.Add(typeImage);
            }
        }
コード例 #41
0
        private void PresentTestElement(GallioTestElement value, IPresentableItem item,
            TreeModelNode modelNode, PresentationState state)
        {
            item.Clear();

            item.RichText = value.TestName;

#if RESHARPER_60_OR_NEWER
            if (value.Explicit)
				item.RichText.SetForeColor(SystemColors.GrayText);

			var typeImage = UnitTestIconManager.GetStandardImage(UnitTestElementImage.Test);
			var stateImage = UnitTestIconManager.GetStateImage(state);
			if (stateImage != null)
			{
				item.Images.Add(stateImage);
			}
			else if (typeImage != null)
			{
				item.Images.Add(typeImage);
			}
#else
			if (value.IsExplicit)
				item.RichText.SetForeColor(SystemColors.GrayText);

            Image image = UnitTestManager.GetStateImage(state);

            if (image == null)
                image = UnitTestManager.GetStandardImage(value.IsTestCase ? UnitTestElementImage.Test : UnitTestElementImage.TestCategory);

            if (image != null)
                item.Images.Add(image);

            if (! value.IsTestCase)
                AppendOccurencesCount(item, modelNode, "test");
#endif
		}
コード例 #42
0
    private void PresentAdorements(object value, IPresentableItem item, TreeModelNode structureElement,
                                   PresentationState state)
    {
      // Emphasize root element
      var element = value as IDeclaredElement;
      if (element == null)
      {
        var envoy = value as DeclaredElementEnvoy<ITypeElement>;
        if (envoy != null)
          element = envoy.GetValidDeclaredElement();
      }
      if (Equals(element, TypeElement))
        item.RichText.SetStyle(FontStyle.Bold);

      // Recursion was stopped, i.e. same type member appeared higher in the chain
/*
      if ((modelNode.Modifiers & TreeModelNodeModifiers.Recursive) != TreeModelNodeModifiers.None)
        item.Images.Add(ourRecursionImage, "Recursive inheritance", ImagePlacement.RIGHT);
*/
    }
コード例 #43
0
 public IEnumerable <Category> GetCategories(IPresentableItem item)
 {
     return(this.itemPresenter.GetCategories(item));
 }
コード例 #44
0
 public void Present(UnitTestElement element, IPresentableItem item, TreeModelNode node, PresentationState state)
 {
     Presenter.UpdateItem(element, node, item, state);
 }
コード例 #45
0
 public void Present(UnitTestElement element, IPresentableItem item, TreeModelNode node, PresentationState state)
 {
     _presenter.Present(element, item, node, state);
 }
コード例 #46
0
            /// <summary>
            /// Presents unit test.
            ///</summary>
            public void Present(UnitTestElement element, IPresentableItem item, TreeModelNode node, PresentationState state)
            {
                if (element == null)
                    throw new ArgumentNullException("element");
                if (item == null)
                    throw new ArgumentNullException("item");
                if (node == null)
                    throw new ArgumentNullException("node");
                if (state == null)
                    throw new ArgumentNullException("state");

                presenter.UpdateItem(element, node, item, state);
            }
コード例 #47
0
 public IEnumerable<Category> GetCategories(IPresentableItem item)
 {
     return this.itemPresenter.GetCategories(item);
 }
コード例 #48
0
 private void PresentStep(NBehaveStepTestElement value, IPresentableItem item, TreeModelNode modelNode, PresentationState state)
 {
 }
コード例 #49
0
 private void PresentStep(NBehaveStepTestElement value, IPresentableItem item, TreeModelNode modelNode, PresentationState state)
 {
 }
コード例 #50
0
 private void PresentFeature(NBehaveFeatureTestElement value, IPresentableItem item, TreeModelNode modelNode, PresentationState state)
 {
     TreeModelNode parentModel;
     if (_treeModels.TryGetValue(value, out parentModel) == false)
     {
         parentModel = modelNode.Parent;
         _treeModels.Add(value, parentModel);
     }
 }
コード例 #51
0
 private void PresentBackgroundScenario(NBehaveBackgroundTestElement value, IPresentableItem item, TreeModelNode structureelement, PresentationState state)
 {
 }
コード例 #52
0
        /// <summary>
        /// Get default description from <see cref="Atomia.Store.Core.IProductProvider"/>
        /// </summary>
        public string GetDescription(IPresentableItem item)
        {
            var product = productProvider.GetProduct(item.ArticleNumber);

            return product.Description;
        }
コード例 #53
0
        public void Present(UnitTestElement element, IPresentableItem item, TreeModelNode node, PresentationState state)
        {
            var testElement = element as StorEvilUnitTestElement;
            if (testElement == null)
                return;

            item.RichText = element.ShortName;
        }
コード例 #54
0
 public void Present(IUnitTestElement element, IPresentableItem item, TreeModelNode node, PresentationState state)
 {
     if (element is NBehaveUnitTestElementBase)
         presenter.UpdateItem(element, node, item, state);
 }
コード例 #55
0
 private void PresentBackgroundScenario(NBehaveBackgroundTestElement value, IPresentableItem item, TreeModelNode structureelement, PresentationState state)
 {
 }
コード例 #56
0
 public string GetName(IPresentableItem item)
 {
     return(this.itemPresenter.GetName(item));
 }
コード例 #57
0
 public abstract void Present(StructuredPresenter <TreeModelNode, IPresentableItem> presenter, IPresentableItem item, TreeModelNode modelNode, PresentationState state);
コード例 #58
0
 public void Present(UnitTestElement element, IPresentableItem item, TreeModelNode node, PresentationState state)
 {
     Presenter.UpdateItem(element, node, item, state);
 }
コード例 #59
0
 public void Present(IUnitTestElement element, IPresentableItem presentableItem, TreeModelNode node, PresentationState state)
 {
     if ((element is XunitTestClassElement) || (element is XunitTestMethodElement))
         Presenter.UpdateItem(element, node, presentableItem, state);
 }
コード例 #60
0
        /// <summary>
        /// Get categories from <see cref="Atomia.Store.Core.IProductProvider"/>
        /// </summary>
        public IEnumerable<Category> GetCategories(IPresentableItem item)
        {
            var product = productProvider.GetProduct(item.ArticleNumber);

            return product.Categories;
        }