public void NotAllowTwoSameIds() { TypeDiscriminatorFactory fac = new TypeDiscriminatorFactory(); Assert.Throws <Exception>(() => { fac.Register(typeof(BaseDao)); fac.Register(typeof(BaseDto)); }); }
public void RegisterTwice() { TypeDiscriminatorFactory fac = new TypeDiscriminatorFactory(); // Register from Base fac.Register <BaseDao>(); Assert.Throws <Exception>(() => { fac.Register <BaseDao>(); }); }
public void RegisterGeneric() { TypeDiscriminatorFactory fac = new TypeDiscriminatorFactory(); fac.RegisterTree(typeof(FileDvo <>)); fac.Register(typeof(BaseDvo <>)); TypeDiscriminator dis = fac.FromType(typeof(DocumentDvo <>)); Assert.Equal(2, dis.Inclusions.Count()); Assert.Single(dis.Exclusions); }
public void NewTest() { TypeDiscriminatorFactory fac = new TypeDiscriminatorFactory(); fac.Register(typeof(BaseDao)); fac.Register(typeof(LocationDao)); fac.Register(typeof(CityDao)); fac.Register(typeof(CountryDao)); TypeDiscriminator dao = fac.FromType <BaseDao>(); fac.Reset(); fac.Register(typeof(BaseDao)); fac.Register(typeof(FileDao)); fac.Register(typeof(DocumentDao)); fac.Register(typeof(WordDocumentDao)); dao = fac.FromType <BaseDao>(); }
public void RegisterFileTree() { TypeDiscriminatorFactory fac = new TypeDiscriminatorFactory(); // Register from File fac.RegisterTree <FileDao>(); TypeDiscriminator dis = null; Assert.Throws <TypeDiscriminatorRegistrationValidationException>(() => { dis = fac.FromType <DocumentDao>(); }); fac.Reset(); fac.RegisterTree <FileDao>(); fac.Register <BaseDao>(); dis = fac.FromType <DocumentDao>(); Assert.Equal(2, dis.Inclusions.Count()); Assert.Single(dis.Exclusions); }
public void TypeDiscriminatorAttribute() { TypeDiscriminatorFactory fac = new TypeDiscriminatorFactory(); fac.Register(typeof(BaseDao)); fac.Register(typeof(LocationDao)); fac.Register(typeof(CityDao)); fac.Register(typeof(CountryDao)); TypeDiscriminator dao = fac.FromType <CityDao>(); fac.Reset(); fac.Register(typeof(BaseDto)); fac.Register(typeof(LocationDto)); fac.Register(typeof(CityDto)); fac.Register(typeof(CountryDto)); TypeDiscriminator dto = fac.FromType <CityDto>(); Assert.True(dao.Id == dto.Id, $"Type discriminators DAO & DTO must have same Id. Values are '{dao.Id}' and '{dto.Id}'"); fac.ClearRegistrations(); fac.Register(typeof(BaseDvo <>)); fac.Register(typeof(LocationDvo <>)); fac.Register(typeof(CityDvo)); fac.Register(typeof(CountryDvo)); TypeDiscriminator dvo = fac.FromId(TypeDiscriminatorIds.City); TypeDiscriminator dvo2 = fac.FromId(TypeDiscriminatorIds.Location); TypeDiscriminator dvo3 = fac.FromType(typeof(LocationDvo <>)); Assert.True(dao.Id == dvo.Id, $"Type discriminators DAO & DVO must have same Id. Values are '{dao.Id}' and '{dvo.Id}'"); Assert.True(dvo2.Id == dvo3.Id, $"Type discriminators DAO & DVO must have same Id. Values are '{dvo2.Id}' and '{dvo3.Id}'"); Assert.True(dvo2.Inclusions.Contains(dvo), $"Type discriminator 'Location' must include 'City'"); }