def testComponentView(self):

    cvName = self.iComponentViews[0]["theName"]
    cvSyn = self.iComponentViews[0]["theSynopsis"]
    theComponents = []
    for c in self.iComponentViews[0]["theComponents"]:
      cName = c["theName"]
      cDesc = c["theDescription"]
      cInts = []
      for i in c["theInterfaces"]:
        cInts.append((i["theName"],i["theType"],i["theAccessRight"],i["thePrivilege"]))
      cStructs = []
      for cs in c["theStructure"]:
        cStructs.append((cs["theHeadAsset"],cs["theHeadAdornment"],cs["theHeadNav"],cs["theHeadNry"],cs["theHeadRole"],cs["theTailRole"],cs["theTailNry"],cs["theTailNav"],cs["theTailAdornment"],cs["theTailAsset"]))
      cReqs = []
      cGoals = []
      for i in c["theGoals"]:
        cGoals.append(i)

      cGoalAssocs = []
      for cga in c["theGoalAssociations"]:
        cGoalAssocs.append((cga["theGoalName"],cga["theSubGoalName"],cga["theRefType"],'None'))
      theComponents.append(ComponentParameters(cName,cDesc,cInts,cStructs,cReqs,cGoals,cGoalAssocs))

    theConnectors = []
    for conn in self.iComponentViews[0]["theConnectors"]:
      theConnectors.append(ConnectorParameters(conn["theConnectorName"],cvName,conn["theFromComponent"],conn["theFromRole"],conn["theFromInterface"],conn["theToComponent"],conn["theToInterface"],conn["theToRole"],conn["theAssetName"],conn["theProtocol"],conn["theAccessRight"]))
 
    icvp = ComponentViewParameters(cvName,cvSyn,self.theMetricTypes,self.theRoles,self.theAssets,self.theRequirements,self.theGoals,theComponents,theConnectors)
    b = Borg()
    b.dbProxy.addComponentView(icvp)

    ocvps = b.dbProxy.getComponentViews()
    ocvp = ocvps[cvName]

    self.assertEqual(icvp.name(), ocvp.name())
    self.assertEqual(icvp.synopsis(), ocvp.synopsis())

    self.assertEqual(b.dbProxy.componentAttackSurface('Policy Manager'),3.0)
    cg = b.dbProxy.componentGoalModel('Policy Manager')

    icvp.setId(ocvp.id())
    icvp.theSynopsis = 'revised synopsis'
    b.dbProxy.updateComponentView(icvp)
    ocvps = b.dbProxy.getComponentViews()
    ocvp = ocvps[cvName]

    self.assertEqual(icvp.name(), ocvp.name())
    self.assertEqual(ocvp.synopsis(), 'revised synopsis')


    b.dbProxy.deleteComponentView(ocvp.id())
  def testComponentView(self):

    cvName = self.iComponentViews[0]["theName"]
    cvSyn = self.iComponentViews[0]["theSynopsis"]
    theComponents = []
    for c in self.iComponentViews[0]["theComponents"]:
      cName = c["theName"]
      cDesc = c["theDescription"]
      cInts = []
      for i in c["theInterfaces"]:
        cInts.append((i["theName"],i["theType"],i["theAccessRight"],i["thePrivilege"]))
      cStructs = []
      for cs in c["theStructure"]:
        cStructs.append((cs["theHeadAsset"],cs["theHeadAdornment"],cs["theHeadNav"],cs["theHeadNry"],cs["theHeadRole"],cs["theTailRole"],cs["theTailNry"],cs["theTailNav"],cs["theTailAdornment"],cs["theTailAsset"]))
      cReqs = []
      cGoals = []
      for i in c["theGoals"]:
        cGoals.append(i)

      cGoalAssocs = []
      for cga in c["theGoalAssociations"]:
        cGoalAssocs.append((cga["theGoalName"],cga["theSubGoalName"],cga["theRefType"],'None'))
      theComponents.append(ComponentParameters(cName,cDesc,cInts,cStructs,cReqs,cGoals,cGoalAssocs))

    theConnectors = []
    for conn in self.iComponentViews[0]["theConnectors"]:
      theConnectors.append(ConnectorParameters(conn["theConnectorName"],cvName,conn["theFromComponent"],conn["theFromRole"],conn["theFromInterface"],conn["theToComponent"],conn["theToInterface"],conn["theToRole"],conn["theAssetName"],conn["theProtocol"],conn["theAccessRight"]))
 
    icvp = ComponentViewParameters(cvName,cvSyn,self.theMetricTypes,self.theRoles,self.theAssets,self.theRequirements,self.theGoals,theComponents,theConnectors)
    b = Borg()
    b.dbProxy.addComponentView(icvp)

    ocvps = b.dbProxy.getComponentViews()
    ocvp = ocvps[cvName]

    self.assertEqual(icvp.name(), ocvp.name())
    self.assertEqual(icvp.synopsis(), ocvp.synopsis())

    self.assertEqual(b.dbProxy.componentAttackSurface('Policy Manager'),3.0)
    cg = b.dbProxy.componentGoalModel('Policy Manager')

    icvp.setId(ocvp.id())
    icvp.theSynopsis = 'revised synopsis'
    b.dbProxy.updateComponentView(icvp)
    ocvps = b.dbProxy.getComponentViews()
    ocvp = ocvps[cvName]

    self.assertEqual(icvp.name(), ocvp.name())
    self.assertEqual(ocvp.synopsis(), 'revised synopsis')


    b.dbProxy.deleteComponentView(ocvp.id())