protected new void CreateCompany()
        {
            var company = new Company("TEST") {Name = "Test", Description = "설명입니다"};
            company.AddMetadata("a", new MetadataValue("A"));
            company.AddMetadata("b", new MetadataValue("B"));
            company.AddLocale(new CultureInfo("en"), new CompanyLocale {Name = "TEST"});
            company.AddLocale(new CultureInfo("ko"), new CompanyLocale {Name = "테스트"});

            Repository<Company>.SaveOrUpdate(company);
        }
        public void CompanyTestByHybrid()
        {
            var company = new Company("RWC2") {Name = "RealWeb", Description = "설명입니다"};
            company.AddMetadata("a", new MetadataValue("A"));
            company.AddMetadata("b", new MetadataValue("B"));
            company.AddLocale(new CultureInfo("en"), new CompanyLocale {Name = "REALWEB"});
            company.AddLocale(new CultureInfo("ko"), new CompanyLocale {Name = "리얼웹"});

            new PersistenceSpecification<Company>(UnitOfWork.CurrentSession)
                .VerifyTheMappings(company);
        }
        public void CompanyTestByUnitOfWork()
        {
            var company = new Company("RWC") {Name = "RealWeb", Description = "설명입니다"};
            company.AddMetadata("a", new MetadataValue("A"));
            company.AddMetadata("b", new MetadataValue("B"));
            company.AddLocale(new CultureInfo("en"), new CompanyLocale {Name = "REALWEB"});
            company.AddLocale(new CultureInfo("ko"), new CompanyLocale {Name = "리얼웹"});

            Repository<Company>.SaveOrUpdate(company);
            UnitOfWork.Current.TransactionalFlush();
            UnitOfWork.Current.Clear();

            var loaded = Repository<Company>.Get(company.Id);
            Assert.AreEqual(company, loaded);

            loaded.LocaleMap.Count.Should().Be(2);
        }