Fixing tests - all green or ignored

This commit is contained in:
Stephan
2017-06-27 16:09:33 +02:00
parent e87be7ad9d
commit faec8f7d94
21 changed files with 478 additions and 395 deletions

View File

@@ -498,9 +498,9 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
return previewXml ?? _xml;
}
internal void Resync()
internal void Resync(XmlDocument xml)
{
_xml = _xmlStore.Xml; // re-capture
_xml = xml; // re-capture
// note: we're not resyncing "preview" because that would mean re-building the whole
// preview set which is costly, so basically when previewing, there will be no resync.

View File

@@ -301,7 +301,7 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
/// </remarks>
public Func<XmlDocument> GetXmlDocument { get; set; }
private readonly XmlDocument _xmlDocument; // supplied xml document (for tests)
private XmlDocument _xmlDocument; // supplied xml document (for tests)
private volatile XmlDocument _xml; // master xml document
private readonly AsyncLock _xmlLock = new AsyncLock(); // protects _xml
@@ -311,10 +311,18 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
{
get
{
if (_xml != null)
return _xml;
if (_xmlDocument != null)
return _xmlDocument;
{
_xml = _xmlDocument;
_xmlDocument = null;
return _xml;
}
if (GetXmlDocument != null)
return GetXmlDocument();
return _xml = GetXmlDocument();
LazyInitializeContent();
ReloadXmlFromFileIfChanged();
@@ -590,24 +598,24 @@ AND (umbracoNode.id=@id)";
// gets a locked safe read access to the main xml
private SafeXmlReaderWriter GetSafeXmlReader()
{
return SafeXmlReaderWriter.Get(_scopeProvider, _xmlLock, _xmlDocument,
_ => ResyncCurrentFacade(),
return SafeXmlReaderWriter.Get(_scopeProvider, _xmlLock, _xml,
ResyncCurrentFacade,
(xml, registerXmlChange) =>
{
SetXmlLocked(xml, registerXmlChange);
ResyncCurrentFacade();
ResyncCurrentFacade(xml);
}, false);
}
// gets a locked safe write access to the main xml (cloned)
private SafeXmlReaderWriter GetSafeXmlWriter()
{
return SafeXmlReaderWriter.Get(_scopeProvider, _xmlLock, _xmlDocument,
_ => ResyncCurrentFacade(),
return SafeXmlReaderWriter.Get(_scopeProvider, _xmlLock, _xml,
ResyncCurrentFacade,
(xml, registerXmlChange) =>
{
SetXmlLocked(xml, registerXmlChange);
ResyncCurrentFacade();
ResyncCurrentFacade(xml);
}, true);
}
@@ -1184,10 +1192,7 @@ ORDER BY umbracoNode.level, umbracoNode.sortOrder";
}
if (publishedChanged)
{
safeXml.AcceptChanges();
ResyncCurrentFacade();
}
}
}
@@ -1216,8 +1221,6 @@ ORDER BY umbracoNode.level, umbracoNode.sortOrder";
RefreshContentTypes(ids);
// ignore media and member types - we're not caching them
ResyncCurrentFacade();
}
public void Notify(DataTypeCacheRefresher.JsonPayload[] payloads)
@@ -1236,15 +1239,13 @@ ORDER BY umbracoNode.level, umbracoNode.sortOrder";
// that's all we need to do as the changes have NO impact whatsoever on the Xml content
// ignore media and member types - we're not caching them
ResyncCurrentFacade();
}
private void ResyncCurrentFacade()
private void ResyncCurrentFacade(XmlDocument xml)
{
var facade = (Facade) _facadeAccessor.Facade;
if (facade == null) return;
((PublishedContentCache) facade.ContentCache).Resync();
((PublishedContentCache) facade.ContentCache).Resync(xml);
((PublishedMediaCache) facade.MediaCache).Resync();
// not trying to resync members or domains, which are not cached really