Ejemplo n.º 1
0
bool CTestResource::SaveToRegistry(HKEY key,LPCTSTR psz)
{
  bool rc=false;    
  ENTERCRITICAL;
  // Delete all the keys under "psz"
  HKEY hKey;
  if(ERROR_SUCCESS==RegOpenKeyEx ((HKEY)key, psz, 0L, KEY_ENUMERATE_SUB_KEYS, &hKey)){
    TCHAR szName[256];
    DWORD dwSizeName=sizeof szName;
    FILETIME ftLastWriteTime;
    DWORD dwIndex;
    if(ERROR_SUCCESS==RegQueryInfoKey(hKey,0,0,0,&dwIndex,0,0,0,0,0,0,0)){
      while((signed)--dwIndex>=0){
        if(ERROR_SUCCESS!=RegEnumKeyEx(hKey, dwIndex, szName, &dwSizeName, NULL, NULL, NULL, &ftLastWriteTime) ||
          ERROR_SUCCESS!=RegDeleteKey(hKey,szName)){
          rc=false;
        }
        dwSizeName=sizeof szName;
      }
    }
    RegCloseKey(hKey);
  }
  rc=true;
  for(CTestResource *pResource=pFirstInstance;pResource;pResource=pResource->m_pNextInstance){
    CTestResourceProperties prop1(pResource);
    rc&=prop1.SaveToRegistry(key,pResource->FileName());
  }

  LEAVECRITICAL;
  return rc;
}
Ejemplo n.º 2
0
    void PropertyTest::testCanCreatePropertiesOfDifferentTypes()
    {
        string name1("prop1");
        string name2("prop2");
        string name3("prop3");
        string name4("prop4");
        string name5("prop5");
        
        bool ok = true;
        string someValue("name");
        int integer = 34;
        double d = 45.24;
        DateTime now;

        Property<string, bool> prop1(name1, ok);
        CPPUNIT_ASSERT_EQUAL(ok, prop1());
        CPPUNIT_ASSERT_EQUAL(ok, prop1.getValue());
        CPPUNIT_ASSERT_EQUAL(name1, prop1.getName());

        Property<string, string> prop2(name2, someValue);
        CPPUNIT_ASSERT_EQUAL(someValue, prop2());
        CPPUNIT_ASSERT_EQUAL(someValue, prop2.getValue());
        CPPUNIT_ASSERT_EQUAL(name2, prop2.getName());

        Property<string, int> prop3(name3, integer);
        CPPUNIT_ASSERT_EQUAL(integer, prop3());
        CPPUNIT_ASSERT_EQUAL(integer, prop3.getValue());
        CPPUNIT_ASSERT_EQUAL(name3, prop3.getName());

        Property<string, double> prop4(name4, d);
        CPPUNIT_ASSERT_EQUAL(d, prop4());
        CPPUNIT_ASSERT_EQUAL(d, prop4.getValue());
        CPPUNIT_ASSERT_EQUAL(name4, prop4.getName());
        
        Property<string, DateTime> prop5(name5, now);
        CPPUNIT_ASSERT_EQUAL(now.utcTime(), prop5().utcTime());
        CPPUNIT_ASSERT_EQUAL(now.utcTime(), prop5.getValue().utcTime());
        CPPUNIT_ASSERT_EQUAL(name5, prop5.getName());
    }
 int testOSMProperty()
 {
     OSMProperty prop1("key", "value");
     OSMProperty prop2("key", "value");
     
     CHECK_EQ(prop1, prop2);
     CHECK_EQ_TYPE(prop1.getKey().toStdString(), "key", std::string);
     CHECK_EQ_TYPE(prop1.getValue().toStdString(), "value", std::string);
     
     prop1.setKey("key2");
     CHECK_EQ_TYPE(prop1.getKey().toStdString(), "key2", std::string);
     
     CHECK(!(prop1 == prop2));
     
     return EXIT_SUCCESS;
 }
Ejemplo n.º 4
0
bool CTestResource::LoadFromRegistry(HKEY key,LPCTSTR psz)
{
  // Find all the keys under "psz" and load from each of them
  bool rc=false;    
  ENTERCRITICAL;
  HKEY hKey;
  if(ERROR_SUCCESS==RegOpenKeyEx ((HKEY)key, psz, 0L, KEY_ENUMERATE_SUB_KEYS, &hKey)){
		TCHAR szName[256];
    DWORD dwSizeName=sizeof szName;
    FILETIME ftLastWriteTime;
    for(DWORD dwIndex=0;ERROR_SUCCESS==RegEnumKeyEx(hKey, dwIndex, szName, &dwSizeName, NULL, NULL, NULL, &ftLastWriteTime); dwIndex++){
      CTestResource *pResource=new CTestResource(_T(""),_T(""));
      String strKey;
      strKey.Format(_T("%s\\%s"),psz,szName);
      CTestResourceProperties prop1(pResource);
      prop1.LoadFromRegistry(key,strKey);
      dwSizeName=sizeof szName;
    }
    RegCloseKey(hKey);
  }
  LEAVECRITICAL;
  return rc;
}
Ejemplo n.º 5
0
//------------------------------------------------------------------------------
TEST_F(Test_Engine_Object, Property)
{
    auto objA = newObject<TestObjectA>();
    objA->setProp1(5);
    ASSERT_EQ(5, objA->prop1());

    //* [ ] PropertyChanged コールバックが呼ばれている
    ASSERT_EQ(1, objA->m_count);

    //* [ ] PropertyInfo が取れる
    ASSERT_EQ(true, TestObjectA::Prop1PropertyId != nullptr);


    auto objC = newObject<TestObjectC>();

    //* [ ] int type
    ASSERT_EQ(1, objC->m_V1);
    objC->m_V1 = 2;
    ASSERT_EQ(2, objC->m_V1);

    //* [ ] pointer type
    ASSERT_EQ(nullptr, objC->m_V2);
    objC->m_V2 = objA;
    ASSERT_EQ(objA, objC->m_V2);

    //* [ ] struct type
    //Point pt1(1, 2);
    //objC->m_V3 = pt1;
    //ASSERT_EQ(1, objC->m_V3.get().x);
    //ASSERT_EQ(2, objC->m_V3.get().y);

    //* [ ] Ref<> type
    ASSERT_EQ(nullptr, objC->m_V4.get());
    objC->m_V4 = objA;
    ASSERT_EQ(objA, objC->m_V4);
}