public void getFacetByNameTest1() { IComponentServant target = new IComponentServant(context); string facetName = typeof(IReceptacles).Name; Facet facet = context.GetFacetByName(facetName); MarshalByRefObject expected = facet.Reference; MarshalByRefObject actual = target.getFacetByName(facetName); Assert.AreEqual(expected, actual); }
public void getFacetsByNameTest() { IMetaInterfaceServant target = new IMetaInterfaceServant(context); string[] names = new string[3]; names[0] = typeof(IComponent).Name; names[1] = typeof(IReceptacles).Name; names[2] = typeof(IMetaInterface).Name; FacetDescription[] actual = target.getFacetsByName(names); Assert.AreEqual(names.Length, actual.Length); foreach (var facet in actual) { Facet expected = context.GetFacetByName(facet.name); Assert.IsNotNull(expected); } }
/// <summary> /// Obtém a faceta do componente através do nome da faceta. /// </summary> /// <param name="facetName">Nome da faceta que se deseja obter.</param> /// <returns>Referência para a faceta do componente.</returns> public MarshalByRefObject getFacetByName(string facetName) { Facet facet = context.GetFacetByName(facetName); if (facet == null) { return(null); } return(facet.Reference); }
/// <summary> /// Adiciona as facetas do arquivo de descrição ao componente. /// </summary> /// <param name="context">O componente</param> /// <exception cref="SCSException">Caso ocorra um erro na criação das facetas.</exception> private void AddFacets(ComponentContext context) { XmlNodeList facetsNodeList = xmlComponent.GetElementsByTagName(FACET_ELEMENT); foreach (XmlNode facetNode in facetsNodeList) { String name = facetNode[FACET_NAME].InnerText; String interfaceName = facetNode[FACET_REP_ID].InnerText; XmlNode servantNode = facetNode[FACET_SERVANT]; String servantName = servantNode.InnerText; String servantAssembly = servantNode.Attributes[FACET_SERVANT_ASSEMBLY_ATTRIBUTE].InnerText; String type = String.Format("{0}, {1}", servantName, servantAssembly); MarshalByRefObject servant = InstantiateServant(type, context); if (!IiopNetUtil.CheckInterface(servant, interfaceName)) { string errorMsg = String.Format( "A faceta '{0}' não suporta a interface '{1}'", name, interfaceName); throw new SCSException(errorMsg); } if (context.GetFacetByName(name) != null) { logger.Info(String.Format("A faceta {0} foi atualizada.", name)); try { context.UpdateFacet(name, servant); } catch (ArgumentException e) { throw new SCSException(e.Message); } } else { logger.Debug(String.Format("Adicionando a faceta {0}", name)); context.AddFacet(name, interfaceName, servant); } } }