Exemplo n.º 1
0
        public T CreateNew <T>() where T : class, new()
        {
            var instance   = new T();
            var cachedStub = StubTypeCacheManager.Get(instance);

            if (cachedStub == null)
            {
                var avaliableProps = instance.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public).Where(w => w.CanWrite);
                var mapping        = new List <KeyValuePair <string, StubDataType> >();
                foreach (var pinfo in avaliableProps)
                {
                    var convention = StubDataMappingProfile.Conventions.FirstOrDefault(w => w.Condition.Invoke(pinfo));
                    if (convention != null)
                    {
                        mapping.Add(new KeyValuePair <string, StubDataType>(pinfo.Name, convention.StubDataType));
                    }
                }
                var typeItem = new StubTypeItem();
                typeItem.SetMapping(mapping);
                StubTypeCacheManager.Set(instance, typeItem);
                typeItem.PrepareData(instance);
            }
            else
            {
                cachedStub.PrepareData(instance);
            }

            return(instance);
        }
Exemplo n.º 2
0
        public CacheManagerTests()
        {
            _cacheKeyGenerator    = new DefaultStubTypeCacheKeyGenerator();
            _stubTypeMemoryCache  = new StubTypeMemoryCache(_cacheKeyGenerator);
            _stubTypeCacheManager = new StubTypeCacheManager(_stubTypeMemoryCache);
            var stubManagerOptions = new StubManagerOptions()
            {
                AutoGenerateUnknown = true, AutoResolveByNaming = true
            };

            _stubManager = new StubManager(stubManagerOptions, _stubTypeCacheManager, new DefaultStubDataMappingProfile());
        }