Pat Tullmann 0cb742dafb binfmt-detector-cli: rewrite to support PE32+ binaries (#38)
Rewrite with hard-coded offsets into the PE file format to discern
if a binary is PE32 or PE32+, and then to determine if it contains
a "CLR Data Directory" entry that looks valid.

Tested with PE32 and PE32+ compiled Mono binaries, PE32 and PE32+ native
binaries, and a random assortment of garbage files.

Former-commit-id: 9e7ac86ec84f653a2f79b87183efd5b0ebda001b
2023-10-16 20:16:47 +02:00

7783 lines
310 KiB
C#

//
// EventLogTest.cs -
// NUnit Test Cases for System.Diagnostics.EventLog
//
// Author:
// Gert Driesen <driesen@users.sourceforge.net>
//
// Copyright (C) 2006 Novell, Inc (http://www.novell.com)
//
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
// TODO:
// - Close (?)
// - CreateEventSource2
// - CreateEventSource3 (2.0 only)
// - Exists : local file
// - SourceExists : local file
// - GetEventLogs (2 overloads)
// - case-insensitive tests
// - use temp directory for event storage on 2.0 profile
// - WriteEvent tests with large instanceID (and check EventID)
//
#if !MOBILE
using System;
using System.Collections;
using System.ComponentModel;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Threading;
using Microsoft.Win32;
using NUnit.Framework;
using MonoTests.Helpers;
namespace MonoTests.System.Diagnostics
{
[TestFixture]
public class EventLogTest
{
private TempDirectory _temp;
private string _originalEventLogImpl;
private string _eventLogStore;
private const string EVENTLOG_TYPE_VAR = "MONO_EVENTLOG_TYPE";
// IMPORTANT: also update constants in EventLogTest
private const string LOCAL_FILE_IMPL = "local";
private const string WIN32_IMPL = "win32";
private const string NULL_IMPL = "null";
[SetUp]
public void SetUp ()
{
if (Win32EventLogEnabled)
return;
// determine temp directory for eventlog store
_temp = new TempDirectory ();
_eventLogStore = _temp.Path;
// save original eventlog implementation type (if set)
_originalEventLogImpl = Environment.GetEnvironmentVariable (
EVENTLOG_TYPE_VAR);
// use local file implementation
Environment.SetEnvironmentVariable (EVENTLOG_TYPE_VAR, "local:"
+ _eventLogStore);
}
[TearDown]
public void TearDown ()
{
if (Win32EventLogEnabled)
return;
// restore original eventlog implementation type
Environment.SetEnvironmentVariable (EVENTLOG_TYPE_VAR,
_originalEventLogImpl);
// delete temp directory for eventlog store
_temp.Dispose ();
}
[Test]
public void Clear ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.SourceExists ("monoothersource", "."))
Assert.Ignore ("Event log source 'monoothersource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
EventLog.CreateEventSource ("monoothersource", "monologtemp", ".");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
// MSBUG: Assert.AreEqual (0, eventLog.Entries.Count, "#A1");
eventLog.Clear ();
Assert.AreEqual (0, eventLog.Entries.Count, "#A2");
Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#A3");
Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#A4");
Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#A5");
Assert.IsFalse (EventLog.Exists ("monotempsource", "."), "#A6");
Assert.IsFalse (EventLog.Exists ("monoothersource", "."), "#A7");
EventLog.WriteEntry ("monotempsource", "Clear1");
Assert.AreEqual (1, eventLog.Entries.Count, "#B1");
eventLog.Clear ();
Assert.AreEqual (0, eventLog.Entries.Count, "#B2");
Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#B3");
Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#B4");
Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#B5");
Assert.IsFalse (EventLog.Exists ("monotempsource", "."), "#B6");
Assert.IsFalse (EventLog.Exists ("monoothersource", "."), "#B7");
EventLog.WriteEntry ("monotempsource", "Clear2");
eventLog.Clear ();
EventLog.WriteEntry ("monotempsource", "Clear3");
EventLog.WriteEntry ("monoothersource", "Clear4");
Assert.AreEqual (2, eventLog.Entries.Count, "#C1");
Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#C2");
Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#C3");
Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#C4");
Assert.IsFalse (EventLog.Exists ("monotempsource", "."), "#C5");
Assert.IsFalse (EventLog.Exists ("monoothersource", "."), "#C6");
EventLogEntry entry = eventLog.Entries [0];
Assert.IsNotNull (entry, "#D1");
Assert.IsNotNull (entry.Category, "#D2");
Assert.AreEqual ("(0)", entry.Category, "#D3");
Assert.AreEqual (0, entry.CategoryNumber, "#D4");
Assert.IsNotNull (entry.Data, "#D5");
Assert.AreEqual (0, entry.Data.Length, "#D6");
Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#D7");
Assert.AreEqual (0, entry.EventID, "#D8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#D9");
Assert.IsNotNull (entry.MachineName, "#D10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#D11");
Assert.IsNotNull (entry.ReplacementStrings, "#D12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#D13");
Assert.AreEqual ("Clear3", entry.ReplacementStrings [0], "#D14");
Assert.IsNotNull (entry.Source, "#D15");
Assert.AreEqual ("monotempsource", entry.Source, "#D16");
Assert.IsNull (entry.UserName, "#D17");
entry = eventLog.Entries [1];
Assert.IsNotNull (entry, "#E1");
Assert.IsNotNull (entry.Category, "#E2");
Assert.AreEqual ("(0)", entry.Category, "#E3");
Assert.AreEqual (0, entry.CategoryNumber, "#E4");
Assert.IsNotNull (entry.Data, "#E5");
Assert.AreEqual (0, entry.Data.Length, "#E6");
Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#E7");
Assert.AreEqual (0, entry.EventID, "#E8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#E9");
Assert.IsNotNull (entry.MachineName, "#E10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#E11");
Assert.IsNotNull (entry.ReplacementStrings, "#E12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#E13");
Assert.AreEqual ("Clear4", entry.ReplacementStrings [0], "#E14");
Assert.IsNotNull (entry.Source, "#E15");
Assert.AreEqual ("monoothersource", entry.Source, "#E16");
Assert.IsNull (entry.UserName, "#E17");
eventLog.Clear ();
Assert.AreEqual (0, eventLog.Entries.Count, "#F1");
Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#F2");
Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#F3");
Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#F4");
Assert.IsFalse (EventLog.Exists ("monotempsource", "."), "#F5");
Assert.IsFalse (EventLog.Exists ("monoothersource", "."), "#F6");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void Clear_Log_DoesNotExist ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
using (EventLog eventLog = new EventLog ("monologtemp", ".")) {
try {
eventLog.Clear ();
Assert.Fail ("#1");
} catch (InvalidOperationException ex) {
// The event log 'monologtemp' on computer '.' does not exist
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#2");
Assert.IsNotNull (ex.Message, "#3");
Assert.IsTrue (ex.Message.IndexOf ("'monologtemp'") != -1, "#4");
Assert.IsTrue (ex.Message.IndexOf ("'.'") != -1, "#5");
Assert.IsNull (ex.InnerException, "#6");
}
Assert.IsFalse (EventLog.Exists ("monologtemp", "."), "#7");
}
}
[Test]
public void Clear_Log_Empty ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.SourceExists ("monoothersource", "."))
Assert.Ignore ("Event log source 'monoothersource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
try {
using (EventLog eventLog = new EventLog (string.Empty, ".")) {
EventLog.WriteEntry ("monotempsource", "Clear_Log_Empty");
// both source & log are not set
try {
eventLog.Clear ();
Assert.Fail ("#A1");
} catch (ArgumentException ex) {
// Log property value has not been specified.
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
Assert.IsNotNull (ex.Message, "#A3");
Assert.IsNull (ex.InnerException, "#A4");
Assert.IsNull (ex.ParamName, "#A5");
}
Assert.AreEqual (string.Empty, eventLog.Log, "#A6");
// set non-existing source
eventLog.Source = "monoothersource";
try {
eventLog.Clear ();
Assert.Fail ("#B1");
} catch (ArgumentException ex) {
// Log property value has not been specified.
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
Assert.IsNotNull (ex.Message, "#B3");
Assert.IsNull (ex.InnerException, "#B4");
Assert.IsNull (ex.ParamName, "#B5");
}
Assert.AreEqual (string.Empty, eventLog.Log, "#B6");
// set existing source
eventLog.Source = "monotempsource";
Assert.IsTrue (eventLog.Entries.Count > 0, "#C1");
eventLog.Clear ();
Assert.AreEqual ("monologtemp", eventLog.Log, "#C2");
Assert.AreEqual (0, eventLog.Entries.Count, "#C3");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void Clear_Source_DoesNotExist ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.SourceExists ("monoothersource", "."))
Assert.Ignore ("Event log source 'monoothersource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monoothersource")) {
EventLog.WriteEntry ("monotempsource", "Clear_Source_DoesNotExist");
Assert.IsTrue (eventLog.Entries.Count > 0, "#1");
eventLog.Clear ();
Assert.AreEqual (0, eventLog.Entries.Count, "#2");
Assert.IsFalse (EventLog.SourceExists ("monoothersource", "."), "#3");
Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#4");
Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#5");
Assert.IsFalse (EventLog.Exists ("monotempsource", "."), "#6");
Assert.IsFalse (EventLog.Exists ("monoothersource", "."), "#7");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void Clear_Source_Empty ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", string.Empty)) {
EventLog.WriteEntry ("monotempsource", "Clear_Source_Empty");
Assert.IsTrue (eventLog.Entries.Count > 0, "#1");
eventLog.Clear ();
Assert.AreEqual (0, eventLog.Entries.Count, "#2");
Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#3");
Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#4");
Assert.IsFalse (EventLog.Exists ("monotempsource", "."), "#5");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void Clear_Source_Null ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", null)) {
EventLog.WriteEntry ("monotempsource", "Clear_Source_Null");
Assert.IsTrue (eventLog.Entries.Count > 0, "#1");
eventLog.Clear ();
Assert.AreEqual (0, eventLog.Entries.Count, "#2");
Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#3");
Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#4");
Assert.IsFalse (EventLog.Exists ("monotempsource", "."), "#5");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void Constructor1 ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
EventLog eventLog = new EventLog ();
Assert.IsFalse (eventLog.EnableRaisingEvents, "#1");
Assert.IsNotNull (eventLog.Entries, "#2");
try {
eventLog.Entries.GetEnumerator ().MoveNext ();
Assert.Fail ("#3a");
} catch (ArgumentException ex) {
// Log property is not set (zero-length string)
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#3b");
Assert.IsNotNull (ex.Message, "#3c");
Assert.IsNull (ex.InnerException, "#3d");
Assert.IsNull (ex.ParamName, "#3e");
}
Assert.IsNotNull (eventLog.Log, "#4");
Assert.AreEqual (string.Empty, eventLog.Log, "#5");
try {
string displayName = eventLog.LogDisplayName;
Assert.Fail ("#6a: " + displayName);
} catch (InvalidOperationException ex) {
// Event log names must consist of printable characters and
// cannot contain \, *, ?, or spaces
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#6b");
Assert.IsNotNull (ex.Message, "#6c");
Assert.IsNull (ex.InnerException, "#6d");
}
Assert.IsNotNull (eventLog.MachineName, "#7");
Assert.AreEqual (".", eventLog.MachineName, "#8");
Assert.IsNotNull (eventLog.Source, "#9");
Assert.AreEqual (string.Empty, eventLog.Source, "#10");
eventLog.Close ();
}
[Test]
public void Constructor2 ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
try {
using (EventLog eventLog = new EventLog ("monologtemp")) {
Assert.IsFalse (eventLog.EnableRaisingEvents, "#B1");
Assert.IsNotNull (eventLog.Entries, "#B2");
// MSBUG: Assert.AreEqual (0, eventLog.Entries.Count, "#B3");
Assert.IsNotNull (eventLog.Log, "#B4");
Assert.AreEqual ("monologtemp", eventLog.Log, "#B5");
Assert.AreEqual ("monologtemp", eventLog.LogDisplayName, "#B6");
Assert.IsNotNull (eventLog.MachineName, "#B7");
Assert.AreEqual (".", eventLog.MachineName, "#B8");
Assert.IsNotNull (eventLog.Source, "#B9");
Assert.AreEqual (string.Empty, eventLog.Source, "#B10");
}
} finally {
EventLog.Delete ("monologtemp");
}
}
[Test]
public void Constructor2_Log_DoesNotExist ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog eventLog = new EventLog ("monologtemp");
Assert.IsFalse (eventLog.EnableRaisingEvents, "#B1");
Assert.IsNotNull (eventLog.Entries, "#B2");
try {
eventLog.Entries.GetEnumerator ().MoveNext ();
Assert.Fail ("#B3a");
} catch (InvalidOperationException ex) {
// The event log 'monologtemp' on computer '.' does not exist
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B3b");
Assert.IsNotNull (ex.Message, "#B3c");
Assert.IsTrue (ex.Message.IndexOf ("'monologtemp'") != -1, "#B3d");
Assert.IsTrue (ex.Message.IndexOf ("'.'") != -1, "#B3e");
Assert.IsNull (ex.InnerException, "#B3f");
}
Assert.IsNotNull (eventLog.Log, "#B4");
Assert.AreEqual ("monologtemp", eventLog.Log, "#B5");
try {
string displayName = eventLog.LogDisplayName;
Assert.Fail ("#B6a: " + displayName);
} catch (InvalidOperationException ex) {
// Cannot find Log monologtemp on computer .
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B6b");
Assert.IsNotNull (ex.Message, "#B6c");
Assert.IsTrue (ex.Message.IndexOf ("monologtemp") != -1, "#B6d");
Assert.IsTrue (ex.Message.IndexOf (".") != -1, "#B6e");
Assert.IsNull (ex.InnerException, "#B6f");
}
Assert.IsNotNull (eventLog.MachineName, "#B7");
Assert.AreEqual (".", eventLog.MachineName, "#B8");
Assert.IsNotNull (eventLog.Source, "#B9");
Assert.AreEqual (string.Empty, eventLog.Source, "#B10");
eventLog.Close ();
}
[Test]
public void Constructor2_Log_Empty ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
EventLog eventLog = new EventLog (string.Empty);
Assert.IsFalse (eventLog.EnableRaisingEvents, "#A1");
Assert.IsNotNull (eventLog.Entries, "#A2");
try {
eventLog.Entries.GetEnumerator ().MoveNext ();
Assert.Fail ("#A3a");
} catch (ArgumentException ex) {
// Log property is not set (zero-length string)
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A3b");
Assert.IsNotNull (ex.Message, "#A3c");
Assert.IsNull (ex.InnerException, "#A3d");
Assert.IsNull (ex.ParamName, "#A3e");
}
Assert.IsNotNull (eventLog.Log, "#A4");
Assert.AreEqual (string.Empty, eventLog.Log, "#A5");
try {
string displayName = eventLog.LogDisplayName;
Assert.Fail ("#A6a: " + displayName);
} catch (InvalidOperationException ex) {
// Event log names must consist of printable characters and
// cannot contain \, *, ?, or spaces
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#A6b");
Assert.IsNotNull (ex.Message, "#A6c");
Assert.IsNull (ex.InnerException, "#A6d");
}
Assert.IsNotNull (eventLog.MachineName, "#A7");
Assert.AreEqual (".", eventLog.MachineName, "#A8");
Assert.IsNotNull (eventLog.Source, "#A9");
Assert.AreEqual (string.Empty, eventLog.Source, "#A10");
eventLog.Close ();
}
[Test]
[ExpectedException (typeof (ArgumentNullException))]
public void Constructor2_Log_Null ()
{
new EventLog (null);
}
[Test]
public void Constructor3 ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".")) {
Assert.IsFalse (eventLog.EnableRaisingEvents, "#B1");
Assert.IsNotNull (eventLog.Entries, "#B2");
// MSBUG: Assert.AreEqual (0, eventLog.Entries.Count, "#B3");
Assert.IsNotNull (eventLog.Log, "#B4");
Assert.AreEqual ("monologtemp", eventLog.Log, "#B5");
Assert.AreEqual ("monologtemp", eventLog.LogDisplayName, "#B6");
Assert.IsNotNull (eventLog.MachineName, "#B7");
Assert.AreEqual (".", eventLog.MachineName, "#B8");
Assert.IsNotNull (eventLog.Source, "#B9");
Assert.AreEqual (string.Empty, eventLog.Source, "#B10");
}
} finally {
EventLog.Delete ("monologtemp");
}
}
[Test]
public void Constructor3_Log_DoesNotExist ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog eventLog = new EventLog ("monologtemp", ".");
Assert.IsFalse (eventLog.EnableRaisingEvents, "#B1");
Assert.IsNotNull (eventLog.Entries, "#B2");
try {
eventLog.Entries.GetEnumerator ().MoveNext ();
Assert.Fail ("#B3a");
} catch (InvalidOperationException ex) {
// The event log 'monologtemp' on computer '.' does not exist
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B3b");
Assert.IsNotNull (ex.Message, "#B3c");
Assert.IsTrue (ex.Message.IndexOf ("'monologtemp'") != -1, "#B3d");
Assert.IsTrue (ex.Message.IndexOf ("'.'") != -1, "#B3e");
Assert.IsNull (ex.InnerException, "#B3f");
}
Assert.IsNotNull (eventLog.Log, "#B4");
Assert.AreEqual ("monologtemp", eventLog.Log, "#B5");
try {
string displayName = eventLog.LogDisplayName;
Assert.Fail ("#B6a: " + displayName);
} catch (InvalidOperationException ex) {
// Cannot find Log monologtemp on computer .
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B6b");
Assert.IsNotNull (ex.Message, "#B6c");
Assert.IsTrue (ex.Message.IndexOf ("monologtemp") != -1, "#B6d");
Assert.IsTrue (ex.Message.IndexOf (".") != -1, "#B6e");
Assert.IsNull (ex.InnerException, "#B6f");
}
Assert.IsNotNull (eventLog.MachineName, "#B7");
Assert.AreEqual (".", eventLog.MachineName, "#B8");
Assert.IsNotNull (eventLog.Source, "#B9");
Assert.AreEqual (string.Empty, eventLog.Source, "#B10");
eventLog.Close ();
}
[Test]
public void Constructor3_Log_Empty ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
EventLog eventLog = new EventLog (string.Empty, ".");
Assert.IsFalse (eventLog.EnableRaisingEvents, "#A1");
Assert.IsNotNull (eventLog.Entries, "#A2");
try {
eventLog.Entries.GetEnumerator ().MoveNext ();
Assert.Fail ("#A3a");
} catch (ArgumentException ex) {
// Log property is not set (zero-length string)
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A3b");
Assert.IsNotNull (ex.Message, "#A3c");
Assert.IsNull (ex.InnerException, "#A3d");
Assert.IsNull (ex.ParamName, "#A3e");
}
Assert.IsNotNull (eventLog.Log, "#A4");
Assert.AreEqual (string.Empty, eventLog.Log, "#A5");
try {
string displayName = eventLog.LogDisplayName;
Assert.Fail ("#A6a: " + displayName);
} catch (InvalidOperationException ex) {
// Event log names must consist of printable characters and
// cannot contain \, *, ?, or spaces
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#A6b");
Assert.IsNotNull (ex.Message, "#A6c");
Assert.IsNull (ex.InnerException, "#A6d");
}
Assert.IsNotNull (eventLog.MachineName, "#A7");
Assert.AreEqual (".", eventLog.MachineName, "#A8");
Assert.IsNotNull (eventLog.Source, "#A9");
Assert.AreEqual (string.Empty, eventLog.Source, "#A10");
eventLog.Close ();
}
[Test]
[ExpectedException (typeof (ArgumentNullException))]
public void Constructor3_Log_Null ()
{
new EventLog (null, ".");
}
[Test]
public void Constructor3_MachineName_Empty ()
{
try {
new EventLog ("monologtemp", string.Empty);
Assert.Fail ("#A1");
} catch (ArgumentException ex) {
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
Assert.IsNotNull (ex.Message, "#A3");
// Invalid value '' for parameter 'machineName'
Assert.IsTrue (ex.Message.IndexOf ("''") != -1, "#A4");
Assert.IsTrue (ex.Message.IndexOf ("'machineName'") != -1, "#A5");
Assert.IsNull (ex.InnerException, "#A6");
Assert.IsNull (ex.ParamName, "#A7");
}
try {
new EventLog ("monologtemp", " \t\n");
Assert.Fail ("#B1");
} catch (ArgumentException ex) {
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
Assert.IsNotNull (ex.Message, "#B3");
// Invalid value ' \t\n' for parameter 'machineName'
Assert.IsTrue (ex.Message.IndexOf ("' \t\n'") != -1, "#B4");
Assert.IsTrue (ex.Message.IndexOf ("'machineName'") != -1, "#B5");
Assert.IsNull (ex.InnerException, "#B6");
Assert.IsNull (ex.ParamName, "#B7");
}
}
[Test]
public void Constructor3_MachineName_Null ()
{
try {
new EventLog ("monologtemp", null);
Assert.Fail ("#A1");
} catch (ArgumentException ex) {
// Invalid value '' for parameter 'machineName'
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
Assert.IsNotNull (ex.Message, "#A3");
Assert.IsTrue (ex.Message.IndexOf ("''") != -1, "#A4");
Assert.IsTrue (ex.Message.IndexOf ("'machineName'") != -1, "#A5");
Assert.IsNull (ex.InnerException, "#A6");
Assert.IsNull (ex.ParamName, "#A7");
}
}
[Test]
public void Constructor4 ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
Assert.IsFalse (eventLog.EnableRaisingEvents, "#A1");
Assert.IsNotNull (eventLog.Entries, "#A2");
// MSBUG: Assert.AreEqual (0, eventLog.Entries.Count, "#A3");
Assert.IsNotNull (eventLog.Log, "#A4");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A5");
Assert.AreEqual ("monologtemp", eventLog.LogDisplayName, "#A6");
Assert.IsNotNull (eventLog.MachineName, "#A7");
Assert.AreEqual (".", eventLog.MachineName, "#A8");
Assert.IsNotNull (eventLog.Source, "#A9");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A10");
}
using (EventLog eventLog = new EventLog ("monologtemp", ".", "whatever")) {
Assert.AreEqual ("monologtemp", eventLog.Log, "#B1");
Assert.AreEqual ("monologtemp", eventLog.LogDisplayName, "#B2");
}
} finally {
EventLog.Delete ("monologtemp");
}
}
[Test]
public void Constructor4_Log_DoesNotExist ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource");
Assert.IsFalse (eventLog.EnableRaisingEvents, "#B1");
Assert.IsNotNull (eventLog.Entries, "#B2");
try {
eventLog.Entries.GetEnumerator ().MoveNext ();
Assert.Fail ("#B3a");
} catch (InvalidOperationException ex) {
// The event log 'monologtemp' on computer '.' does not exist
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B3b");
Assert.IsNotNull (ex.Message, "#B3c");
Assert.IsTrue (ex.Message.IndexOf ("'monologtemp'") != -1, "#B3d");
Assert.IsTrue (ex.Message.IndexOf ("'.'") != -1, "#B3e");
Assert.IsNull (ex.InnerException, "#B3f");
}
Assert.IsNotNull (eventLog.Log, "#B4");
Assert.AreEqual ("monologtemp", eventLog.Log, "#B5");
try {
string displayName = eventLog.LogDisplayName;
Assert.Fail ("#B6a: " + displayName);
} catch (InvalidOperationException ex) {
// Cannot find Log monologtemp on computer .
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B6b");
Assert.IsNotNull (ex.Message, "#B6c");
Assert.IsTrue (ex.Message.IndexOf ("monologtemp") != -1, "#B6d");
Assert.IsTrue (ex.Message.IndexOf (".") != -1, "#B6e");
Assert.IsNull (ex.InnerException, "#B6f");
}
Assert.IsNotNull (eventLog.MachineName, "#B7");
Assert.AreEqual (".", eventLog.MachineName, "#B8");
Assert.IsNotNull (eventLog.Source, "#B9");
Assert.AreEqual ("monotempsource", eventLog.Source, "#B10");
eventLog.Close ();
}
[Test]
public void Constructor4_Log_Empty ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
bool applicationLogExists = EventLog.Exists ("Application");
try {
EventLog eventLog = new EventLog (string.Empty, ".", "monotempsource");
Assert.IsFalse (eventLog.EnableRaisingEvents, "#A1");
Assert.IsNotNull (eventLog.Entries, "#A2");
try {
eventLog.Entries.GetEnumerator ().MoveNext ();
Assert.Fail ("#A3a");
} catch (ArgumentException ex) {
// Log property is not set (zero-length string)
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A3b");
Assert.IsNotNull (ex.Message, "#A3c");
Assert.IsNull (ex.InnerException, "#A3d");
Assert.IsNull (ex.ParamName, "#A3e");
}
Assert.IsNotNull (eventLog.Log, "#A4");
Assert.AreEqual (string.Empty, eventLog.Log, "#A5");
try {
string displayName = eventLog.LogDisplayName;
Assert.Fail ("#A6a: " + displayName);
} catch (InvalidOperationException ex) {
// Event log names must consist of printable characters and
// cannot contain \, *, ?, or spaces
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#A6b");
Assert.IsNotNull (ex.Message, "#A6c");
Assert.IsNull (ex.InnerException, "#A6d");
}
Assert.IsNotNull (eventLog.MachineName, "#A7");
Assert.AreEqual (".", eventLog.MachineName, "#A8");
Assert.IsNotNull (eventLog.Source, "#A9");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A10");
eventLog.Close ();
} finally {
if (!applicationLogExists) {
if (EventLog.Exists ("Application"))
EventLog.Delete ("Application");
} else {
if (EventLog.SourceExists ("monotempsource", "."))
EventLog.DeleteEventSource ("monotempsource", ".");
}
}
}
[Test]
[ExpectedException (typeof (ArgumentNullException))]
public void Constructor4_Log_Null ()
{
new EventLog (null, ".", "monotempsource");
}
[Test]
public void Constructor4_MachineName_Empty ()
{
try {
new EventLog ("monologtemp", string.Empty, "monotempsource");
Assert.Fail ("#A1");
} catch (ArgumentException ex) {
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
Assert.IsNotNull (ex.Message, "#A3");
// Invalid value '' for parameter 'machineName'
Assert.IsTrue (ex.Message.IndexOf ("''") != -1, "#A4");
Assert.IsTrue (ex.Message.IndexOf ("'machineName'") != -1, "#A5");
Assert.IsNull (ex.InnerException, "#A6");
Assert.IsNull (ex.ParamName, "#A7");
}
try {
new EventLog ("monologtemp", " \t\n", "monotempsource");
Assert.Fail ("#B1");
} catch (ArgumentException ex) {
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
Assert.IsNotNull (ex.Message, "#B3");
// Invalid value ' \t\n' for parameter 'machineName'
Assert.IsTrue (ex.Message.IndexOf ("' \t\n'") != -1, "#B4");
Assert.IsTrue (ex.Message.IndexOf ("'machineName'") != -1, "#B5");
Assert.IsNull (ex.InnerException, "#B6");
Assert.IsNull (ex.ParamName, "#B7");
}
}
[Test]
public void Constructor4_MachineName_Null ()
{
try {
new EventLog ("monologtemp", null, "monotempsource");
Assert.Fail ("#A1");
} catch (ArgumentException ex) {
// Invalid value '' for parameter 'machineName'
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
Assert.IsNotNull (ex.Message, "#A3");
Assert.IsTrue (ex.Message.IndexOf ("''") != -1, "#A4");
Assert.IsTrue (ex.Message.IndexOf ("'machineName'") != -1, "#A5");
Assert.IsNull (ex.InnerException, "#A6");
Assert.IsNull (ex.ParamName, "#A7");
}
}
[Test]
public void Constructor4_Source_DoesNotExist ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monoothersource", "."))
Assert.Ignore ("Event log source 'monoothersource' should not exist.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monoothersource", "monologtemp", ".");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
Assert.IsFalse (eventLog.EnableRaisingEvents, "#A1");
Assert.IsNotNull (eventLog.Entries, "#A2");
// MSBUG: Assert.AreEqual (0, eventLog.Entries.Count, "#A3");
Assert.IsNotNull (eventLog.Log, "#A4");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A5");
Assert.AreEqual ("monologtemp", eventLog.LogDisplayName, "#A6");
Assert.IsNotNull (eventLog.MachineName, "#A7");
Assert.AreEqual (".", eventLog.MachineName, "#A8");
Assert.IsNotNull (eventLog.Source, "#A9");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A10");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A11");
Assert.IsTrue (EventLog.SourceExists ("monoothersource"), "#A12");
Assert.IsFalse (EventLog.SourceExists ("monotempsource"), "#A13");
Assert.IsFalse (EventLog.Exists ("monotempsource", "."), "#A14");
Assert.IsFalse (EventLog.Exists ("monoothersource", "."), "#A15");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void Constructor4_Source_Empty ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", string.Empty)) {
Assert.IsFalse (eventLog.EnableRaisingEvents, "#A1");
Assert.IsNotNull (eventLog.Entries, "#A2");
// MSBUG: Assert.AreEqual (0, eventLog.Entries.Count, "#A3");
Assert.IsNotNull (eventLog.Log, "#A4");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A5");
Assert.AreEqual ("monologtemp", eventLog.LogDisplayName, "#A6");
Assert.IsNotNull (eventLog.MachineName, "#A7");
Assert.AreEqual (".", eventLog.MachineName, "#A8");
Assert.IsNotNull (eventLog.Source, "#A9");
Assert.AreEqual (string.Empty, eventLog.Source, "#A10");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A11");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A12");
Assert.IsFalse (EventLog.Exists ("monotempsource", "."), "#A13");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void Constructor4_Source_Null ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", null)) {
Assert.IsFalse (eventLog.EnableRaisingEvents, "#A1");
Assert.IsNotNull (eventLog.Entries, "#A2");
// MSBUG: Assert.AreEqual (0, eventLog.Entries.Count, "#A3");
Assert.IsNotNull (eventLog.Log, "#A4");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A5");
Assert.AreEqual ("monologtemp", eventLog.LogDisplayName, "#A6");
Assert.IsNotNull (eventLog.MachineName, "#A7");
Assert.AreEqual (".", eventLog.MachineName, "#A8");
Assert.IsNull (eventLog.Source, "#A9");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A10");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A11");
Assert.IsFalse (EventLog.Exists ("monotempsource", "."), "#A12");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void CreateEventSource1 ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.SourceExists ("monologtemp", "."))
Assert.Ignore ("Event log source 'monologtemp' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
if (EventLog.Exists ("monologother", "."))
Assert.Ignore ("Event log 'monologother' should not exist.");
try {
EventLog.CreateEventSource ("monotempsource", "monologtemp");
Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#A1");
Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#A2");
Assert.IsTrue (EventLog.SourceExists ("monologtemp", "."), "#A3");
Assert.IsFalse (EventLog.Exists ("monotempsource", "."), "#A4");
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
Assert.IsFalse (eventLog.EnableRaisingEvents, "#B1");
Assert.IsNotNull (eventLog.Entries, "#B2");
// MSBUG: Assert.AreEqual (0, eventLog.Entries.Count, "#B3");
Assert.IsNotNull (eventLog.Log, "#B4");
Assert.AreEqual ("monologtemp", eventLog.Log, "#B5");
Assert.IsNotNull (eventLog.LogDisplayName, "#B6");
Assert.AreEqual ("monologtemp", eventLog.LogDisplayName, "#B7");
Assert.IsNotNull (eventLog.MachineName, "#B8");
Assert.AreEqual (".", eventLog.MachineName, "#B9");
Assert.IsNotNull (eventLog.Source, "#B10");
Assert.AreEqual ("monotempsource", eventLog.Source, "#B11");
}
try {
EventLog.CreateEventSource ("monologtemp", "monologother");
Assert.Fail ("#C1");
} catch (ArgumentException ex) {
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#C2");
Assert.IsNotNull (ex.Message, "#C3");
Assert.IsTrue (ex.Message.IndexOf ("monologtemp") != -1, "#C4");
Assert.IsTrue (ex.Message.IndexOf ("monologother") == -1, "#C5");
Assert.IsNull (ex.InnerException, "#C6");
Assert.IsNull (ex.ParamName, "#C7");
}
try {
EventLog.CreateEventSource ("monotempsource", "monologother");
Assert.Fail ("#D1");
} catch (ArgumentException ex) {
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#D2");
Assert.IsNotNull (ex.Message, "#D3");
Assert.IsTrue (ex.Message.IndexOf ("monotempsource") != -1, "#D4");
Assert.IsTrue (ex.Message.IndexOf ("monologother") == -1, "#D5");
Assert.IsNull (ex.InnerException, "#D6");
Assert.IsNull (ex.ParamName, "#D7");
}
try {
EventLog.CreateEventSource ("MonoTempSource", "monologother");
Assert.Fail ("#E1");
} catch (ArgumentException ex) {
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#E2");
Assert.IsNotNull (ex.Message, "#E3");
Assert.IsTrue (ex.Message.IndexOf ("MonoTempSource") != -1, "#E4");
Assert.IsTrue (ex.Message.IndexOf ("monologother") == -1, "#E5");
Assert.IsNull (ex.InnerException, "#E6");
Assert.IsNull (ex.ParamName, "#E7");
}
} finally {
if (EventLog.Exists ("monologtemp", "."))
EventLog.Delete ("monologtemp", ".");
if (EventLog.Exists ("monologother", "."))
EventLog.Delete ("monologother", ".");
}
}
[Test]
[ExpectedException (typeof (ArgumentException))] // Must specify value for source
public void CreateEventSource1_Source_Empty ()
{
EventLog.CreateEventSource (string.Empty, "monologtemp");
}
[Test]
[ExpectedException (typeof (ArgumentException))] // Must specify value for source
public void CreateEventSource1_Source_Null ()
{
EventLog.CreateEventSource (null, "monologtemp");
}
[Test]
public void CreateEventSource1_Log_Empty ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
bool logExists = EventLog.Exists ("Application", ".");
try {
EventLog.CreateEventSource ("monotempsource", string.Empty);
string logName = EventLog.LogNameFromSourceName ("monotempsource", ".");
Assert.IsNotNull (logName, "#1");
Assert.AreEqual ("Application", logName, "#2");
} finally {
if (!logExists) {
if (EventLog.Exists ("Application", ".")) {
EventLog.Delete ("Application", ".");
}
} else {
if (EventLog.SourceExists ("monotempsource", "."))
EventLog.DeleteEventSource ("monotempsource", ".");
}
}
}
[Test]
public void CreateEventSource1_Log_ExistsAsSource ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.SourceExists ("monologtemp", "."))
Assert.Ignore ("Event log source 'monologtemp' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
if (EventLog.Exists ("monologother", "."))
Assert.Ignore ("Event log 'monologother' should not exist.");
try {
EventLog.CreateEventSource ("monologtemp", "monologother", ".");
Assert.IsTrue (EventLog.Exists ("monologother", "."), "#A1");
Assert.IsFalse (EventLog.Exists ("monologtemp", "."), "#A2");
Assert.IsTrue (EventLog.SourceExists ("monologtemp", "."), "#A3");
Assert.IsTrue (EventLog.SourceExists ("monologother", "."), "#A4");
try {
EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
Assert.Fail ("#B1");
} catch (ArgumentException ex) {
// Log monologtemp has already been registered as a source
// on the local computer
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
Assert.IsNotNull (ex.Message, "#B3");
Assert.IsTrue (ex.Message.IndexOf ("monologtemp") != -1, "#B4");
Assert.IsNull (ex.InnerException, "#B5");
Assert.IsNull (ex.ParamName, "#B6");
}
} finally {
if (EventLog.Exists ("monologtemp", "."))
EventLog.Delete ("monologtemp", ".");
if (EventLog.Exists ("monologother", "."))
EventLog.Delete ("monologother", ".");
}
}
[Test]
public void CreateEventSource1_Log_InvalidCustomerLog ()
{
if (EventLogImplType != NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("AppEvent", "."))
Assert.Ignore ("Event log 'AppEvent' should not exist.");
try {
EventLog.CreateEventSource ("monotempsource", "AppEvent");
Assert.Fail ("#A1");
} catch (ArgumentException ex) {
// The log name: 'AppEvent' is invalid for customer log creation
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
Assert.IsNotNull (ex.Message, "#A3");
Assert.IsTrue (ex.Message.IndexOf ("'AppEvent'") != -1, "#A4");
Assert.IsNull (ex.InnerException, "#A5");
Assert.IsNull (ex.ParamName, "#A6");
}
try {
EventLog.CreateEventSource ("monotempsource", "appevent");
Assert.Fail ("#B1");
} catch (ArgumentException ex) {
// The log name: 'appevent' is invalid for customer log creation
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
Assert.IsNotNull (ex.Message, "#B3");
Assert.IsTrue (ex.Message.IndexOf ("'appevent'") != -1, "#B4");
Assert.IsNull (ex.InnerException, "#B5");
Assert.IsNull (ex.ParamName, "#B6");
}
if (EventLog.Exists ("SysEvent", "."))
Assert.Ignore ("Event log 'SysEvent' should not exist.");
try {
EventLog.CreateEventSource ("monotempsource", "SysEvent");
Assert.Fail ("#C1");
} catch (ArgumentException ex) {
// The log name: 'SysEvent' is invalid for customer log creation
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#C2");
Assert.IsNotNull (ex.Message, "#C3");
Assert.IsTrue (ex.Message.IndexOf ("'SysEvent'") != -1, "#C4");
Assert.IsNull (ex.InnerException, "#C5");
Assert.IsNull (ex.ParamName, "#C6");
}
try {
EventLog.CreateEventSource ("monotempsource", "sysevent");
Assert.Fail ("#D1");
} catch (ArgumentException ex) {
// The log name: 'sysEvent' is invalid for customer log creation
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#D2");
Assert.IsNotNull (ex.Message, "#D3");
Assert.IsTrue (ex.Message.IndexOf ("'sysevent'") != -1, "#D4");
Assert.IsNull (ex.InnerException, "#D5");
Assert.IsNull (ex.ParamName, "#D6");
}
if (EventLog.Exists ("SecEvent", "."))
Assert.Ignore ("Event log 'SecEvent' should not exist.");
try {
EventLog.CreateEventSource ("monotempsource", "SecEvent");
Assert.Fail ("#E1");
} catch (ArgumentException ex) {
// The log name: 'SecEvent' is invalid for customer log creation
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#E2");
Assert.IsNotNull (ex.Message, "#E3");
Assert.IsTrue (ex.Message.IndexOf ("'SecEvent'") != -1, "#E4");
Assert.IsNull (ex.InnerException, "#E5");
Assert.IsNull (ex.ParamName, "#E6");
}
try {
EventLog.CreateEventSource ("monotempsource", "secevent");
Assert.Fail ("#F1");
} catch (ArgumentException ex) {
// The log name: 'secevent' is invalid for customer log creation
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#F2");
Assert.IsNotNull (ex.Message, "#F3");
Assert.IsTrue (ex.Message.IndexOf ("'secevent'") != -1, "#F4");
Assert.IsNull (ex.InnerException, "#F5");
Assert.IsNull (ex.ParamName, "#F6");
}
if (EventLog.Exists ("AppEventA", "."))
Assert.Ignore ("Event log 'AppEventA' should not exist.");
try {
EventLog.CreateEventSource ("monotempsource", "AppEventA");
Assert.Fail ("#G1");
} catch (ArgumentException ex) {
// The log name: 'AppEventA' is invalid for customer log creation
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#G2");
Assert.IsNotNull (ex.Message, "#G3");
Assert.IsTrue (ex.Message.IndexOf ("'AppEventA'") != -1, "#G4");
Assert.IsNull (ex.InnerException, "#G5");
Assert.IsNull (ex.ParamName, "#G6");
}
if (EventLog.Exists ("SysEventA", "."))
Assert.Ignore ("Event log 'SysEventA' should not exist.");
try {
EventLog.CreateEventSource ("monotempsource", "SysEventA");
Assert.Fail ("#H1");
} catch (ArgumentException ex) {
// The log name: 'SysEventA' is invalid for customer log creation
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#H2");
Assert.IsNotNull (ex.Message, "#H3");
Assert.IsTrue (ex.Message.IndexOf ("'SysEventA'") != -1, "#H4");
Assert.IsNull (ex.InnerException, "#H5");
Assert.IsNull (ex.ParamName, "#H6");
}
if (EventLog.Exists ("SecEventA", "."))
Assert.Ignore ("Event log 'SecEventA' should not exist.");
try {
EventLog.CreateEventSource ("monotempsource", "SecEventA");
Assert.Fail ("#I1");
} catch (ArgumentException ex) {
// The log name: 'SecEventA' is invalid for customer log creation
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#I2");
Assert.IsNotNull (ex.Message, "#I3");
Assert.IsTrue (ex.Message.IndexOf ("'SecEventA'") != -1, "#I4");
Assert.IsNull (ex.InnerException, "#I5");
Assert.IsNull (ex.ParamName, "#I6");
}
}
[Test]
public void CreateEventSource1_Log_NotUnique ()
{
if (EventLogImplType != NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.SourceExists ("monotestsource", "."))
Assert.Ignore ("Event log source 'monotestsource' should not exist.");
if (EventLog.SourceExists ("monoothersource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
if (EventLog.Exists ("monologtest", "."))
Assert.Ignore ("Event log 'monologtest' should not exist.");
if (EventLog.Exists ("monologother", "."))
Assert.Ignore ("Event log 'monologother' should not exist.");
// the 8th character of the log name differs
try {
EventLog.CreateEventSource ("monoothersource", "monologother");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
} finally {
if (EventLog.Exists ("monologother"))
EventLog.Delete ("monologother");
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
// the first 8 characters match
try {
EventLog.CreateEventSource ("monotestsource", "monologtest");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
Assert.Fail ("#A1");
} catch (ArgumentException ex) {
// Only the first eight characters of a custom log name are
// significant, and there is already another log on the system
// using the first eight characters of the name given.
// Name given: 'monologtemp', name of existing log: 'monologtest'
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
Assert.IsNotNull (ex.Message, "#B3");
Assert.IsTrue (ex.Message.IndexOf ("'monologtemp'") != -1, "#B4");
Assert.IsTrue (ex.Message.IndexOf ("'monologtest'") != -1, "#B5");
Assert.IsNull (ex.InnerException, "#B6");
Assert.IsNull (ex.ParamName, "#B7");
} finally {
if (EventLog.Exists ("monologtest"))
EventLog.Delete ("monologtest");
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void CreateEventSource1_Log_Null ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
bool logExists = EventLog.Exists ("Application", ".");
try {
EventLog.CreateEventSource ("monotempsource", null);
string logName = EventLog.LogNameFromSourceName ("monotempsource", ".");
Assert.IsNotNull (logName, "#1");
Assert.AreEqual ("Application", logName, "#2");
} finally {
if (!logExists) {
if (EventLog.Exists ("Application"))
EventLog.Delete ("Application");
} else {
if (EventLog.SourceExists ("monotempsource", "."))
EventLog.DeleteEventSource ("monotempsource", ".");
}
}
}
[Test]
public void Delete1 ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.SourceExists ("monoothersource", "."))
Assert.Ignore ("Event log source 'monoothersource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
if (EventLog.Exists ("monologother", "."))
Assert.Ignore ("Event log 'monologother' should not exist.");
try {
EventLog.CreateEventSource ("monoothersource", "monologother", ".");
EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#A1");
Assert.IsTrue (EventLog.Exists ("monologother", "."), "#A2");
Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#A3");
Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#A4");
Assert.IsFalse (EventLog.Exists ("monotempsource", "."), "#A5");
Assert.IsFalse (EventLog.Exists ("monoothersource", "."), "#A6");
EventLog.Delete ("monologtemp");
Assert.IsFalse (EventLog.Exists ("monologtemp", "."), "#A7");
Assert.IsTrue (EventLog.Exists ("monologother", "."), "#A8");
Assert.IsFalse (EventLog.SourceExists ("monotempsource", "."), "#A9");
Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#A10");
Assert.IsFalse (EventLog.Exists ("monotempsource", "."), "#A11");
Assert.IsFalse (EventLog.Exists ("monoothersource", "."), "#A12");
EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#B1");
Assert.IsTrue (EventLog.Exists ("monologother", "."), "#B2");
Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#B3");
Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#B4");
Assert.IsFalse (EventLog.Exists ("monotempsource", "."), "#B5");
Assert.IsFalse (EventLog.Exists ("monoothersource", "."), "#B6");
EventLog.Delete ("MonoLogTemp");
Assert.IsFalse (EventLog.Exists ("monologtemp", "."), "#B7");
Assert.IsTrue (EventLog.Exists ("monologother", "."), "#B8");
Assert.IsFalse (EventLog.SourceExists ("monotempsource", "."), "#B9");
Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#B10");
Assert.IsFalse (EventLog.Exists ("monotempsource", "."), "#B11");
Assert.IsFalse (EventLog.Exists ("monoothersource", "."), "#B12");
} finally {
if (EventLog.Exists ("monologother"))
EventLog.Delete ("monologother");
}
}
[Test]
public void Delete1_Log_DoesNotExist ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
try {
EventLog.Delete ("monologtemp");
Assert.Fail ("#1");
} catch (InvalidOperationException ex) {
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#2");
Assert.IsNotNull (ex.Message, "#3");
Assert.IsTrue (ex.Message.IndexOf ("monologtemp") != -1, "#4");
Assert.IsTrue (ex.Message.IndexOf (".") != -1, "#5");
Assert.IsNull (ex.InnerException, "#6");
}
}
[Test]
[ExpectedException (typeof (ArgumentException))] // Log to delete was not specified
public void Delete1_Log_Empty ()
{
EventLog.Delete (string.Empty);
}
[Test]
[ExpectedException (typeof (ArgumentException))] // Log to delete was not specified
public void Delete1_Log_Null ()
{
EventLog.Delete (null);
}
[Test]
public void Delete2 ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.SourceExists ("monoothersource", "."))
Assert.Ignore ("Event log source 'monoothersource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
if (EventLog.Exists ("monologother", "."))
Assert.Ignore ("Event log 'monologother' should not exist.");
try {
EventLog.CreateEventSource ("monoothersource", "monologother", ".");
EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#A1");
Assert.IsTrue (EventLog.Exists ("monologother", "."), "#A2");
Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#A3");
Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#A4");
Assert.IsFalse (EventLog.Exists ("monotempsource", "."), "#A5");
Assert.IsFalse (EventLog.Exists ("monoothersource", "."), "#A6");
EventLog.Delete ("monologtemp", ".");
Assert.IsFalse (EventLog.Exists ("monologtemp", "."), "#A7");
Assert.IsTrue (EventLog.Exists ("monologother", "."), "#A8");
Assert.IsFalse (EventLog.SourceExists ("monotempsource", "."), "#A9");
Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#A10");
Assert.IsFalse (EventLog.Exists ("monotempsource", "."), "#A11");
Assert.IsFalse (EventLog.Exists ("monoothersource", "."), "#A12");
EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#B1");
Assert.IsTrue (EventLog.Exists ("monologother", "."), "#B2");
Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#B3");
Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#B4");
Assert.IsFalse (EventLog.Exists ("monotempsource", "."), "#B5");
Assert.IsFalse (EventLog.Exists ("monoothersource", "."), "#B6");
EventLog.Delete ("MonoLogTemp", ".");
Assert.IsFalse (EventLog.Exists ("monologtemp", "."), "#B7");
Assert.IsTrue (EventLog.Exists ("monologother", "."), "#B8");
Assert.IsFalse (EventLog.SourceExists ("monotempsource", "."), "#B9");
Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#B10");
Assert.IsFalse (EventLog.Exists ("monotempsource", "."), "#B11");
Assert.IsFalse (EventLog.Exists ("monoothersource", "."), "#B12");
} finally {
if (EventLog.Exists ("monologother"))
EventLog.Delete ("monologother");
}
}
[Test]
public void Delete2_Log_DoesNotExist ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
try {
EventLog.Delete ("monologtemp", ".");
Assert.Fail ("#1");
} catch (InvalidOperationException ex) {
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#2");
Assert.IsNotNull (ex.Message, "#3");
Assert.IsTrue (ex.Message.IndexOf ("monologtemp") != -1, "#4");
Assert.IsTrue (ex.Message.IndexOf (".") != -1, "#5");
Assert.IsNull (ex.InnerException, "#6");
}
}
[Test]
[ExpectedException (typeof (ArgumentException))] // Log to delete was not specified
public void Delete2_Log_Empty ()
{
EventLog.Delete (string.Empty, ".");
}
[Test]
[ExpectedException (typeof (ArgumentException))] // Log to delete was not specified
public void Delete2_Log_Null ()
{
EventLog.Delete (null, ".");
}
[Test]
public void Delete2_MachineName_Empty ()
{
try {
EventLog.Delete ("monologtemp", string.Empty);
Assert.Fail ("#A1");
} catch (ArgumentException ex) {
// // Invalid format for argument machineName
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
Assert.IsNotNull (ex.Message, "#A3");
Assert.IsTrue (ex.Message.IndexOf ("machineName") != -1, "#A4");
Assert.IsNull (ex.InnerException, "#A5");
Assert.IsNull (ex.ParamName, "#A6");
}
try {
EventLog.Delete ("monologtemp", " \t\n");
Assert.Fail ("#B1");
} catch (ArgumentException ex) {
// // Invalid format for argument machineName
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
Assert.IsNotNull (ex.Message, "#B3");
Assert.IsTrue (ex.Message.IndexOf ("machineName") != -1, "#B4");
Assert.IsNull (ex.InnerException, "#B5");
Assert.IsNull (ex.ParamName, "#B6");
}
}
[Test]
public void Delete2_MachineName_Null ()
{
try {
EventLog.Delete ("monologtemp", null);
Assert.Fail ("#1");
} catch (ArgumentException ex) {
// // Invalid format for argument machineName
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#2");
Assert.IsNotNull (ex.Message, "#3");
Assert.IsTrue (ex.Message.IndexOf ("machineName") != -1, "#4");
Assert.IsNull (ex.InnerException, "#5");
Assert.IsNull (ex.ParamName, "#6");
}
}
[Test]
public void DeleteEventSource1 ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.SourceExists ("monoothersource", "."))
Assert.Ignore ("Event log source 'monoothersource' should not exist.");
bool monologtempExists = EventLog.Exists ("monologtemp", ".");
try {
EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
EventLog.CreateEventSource ("monoothersource", "monologtemp", ".");
Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#A1");
Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#A2");
EventLog.DeleteEventSource ("monotempsource");
Assert.IsFalse (EventLog.SourceExists ("monotempsource", "."), "#A3");
Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#A4");
Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#A5");
Assert.IsFalse (EventLog.Exists ("monotempsource", "."), "#A6");
Assert.IsFalse (EventLog.Exists ("monoothersource", "."), "#A7");
EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#B1");
Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#A2");
EventLog.DeleteEventSource ("MonoTempSource");
Assert.IsFalse (EventLog.SourceExists ("monotempsource", "."), "#B3");
Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#B4");
Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#B5");
Assert.IsFalse (EventLog.Exists ("monotempsource", "."), "#B6");
Assert.IsFalse (EventLog.Exists ("monoothersource", "."), "#B7");
} finally {
if (!monologtempExists) {
EventLog.Delete ("monologtemp");
}
}
}
[Test]
public void DeleteEventSource1_Source_DoesNotExist ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
try {
EventLog.DeleteEventSource ("monotempsource");
Assert.Fail ("#1");
} catch (ArgumentException ex) {
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#2");
Assert.IsNotNull (ex.Message, "#3");
Assert.IsTrue (ex.Message.IndexOf ("'monotempsource'") != -1, "#4");
Assert.IsTrue (ex.Message.IndexOf ("'.'") != -1, "#5");
Assert.IsNull (ex.InnerException, "#6");
Assert.IsNull (ex.ParamName, "#7");
}
}
[Test]
[ExpectedException (typeof (ArgumentException))] // The source '' is not registered on machine '.', ...
public void DeleteEventSource1_Source_Empty ()
{
if (EventLogImplType == NULL_IMPL)
// allow test to pass with NULL implementation
throw new ArgumentException ();
EventLog.DeleteEventSource (string.Empty);
}
[Test]
[ExpectedException (typeof (ArgumentException))] // The source '' is not registered on machine '.', ...
public void DeleteEventSource1_Source_Null ()
{
if (EventLogImplType == NULL_IMPL)
// allow test to pass with NULL implementation
throw new ArgumentException ();
EventLog.DeleteEventSource (null);
}
[Test]
public void DeleteEventSource2 ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.SourceExists ("monoothersource", "."))
Assert.Ignore ("Event log source 'monoothersource' should not exist.");
bool monologtempExists = EventLog.Exists ("monologtemp", ".");
try {
EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
EventLog.CreateEventSource ("monoothersource", "monologtemp", ".");
Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#A1");
Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#A2");
EventLog.DeleteEventSource ("monotempsource");
Assert.IsFalse (EventLog.SourceExists ("monotempsource", "."), "#A3");
Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#A4");
Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#A5");
Assert.IsFalse (EventLog.Exists ("monotempsource", "."), "#A6");
Assert.IsFalse (EventLog.Exists ("monoothersource", "."), "#A7");
EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#B1");
Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#A2");
EventLog.DeleteEventSource ("MonoTempSource");
Assert.IsFalse (EventLog.SourceExists ("monotempsource", "."), "#B3");
Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#B4");
Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#B5");
Assert.IsFalse (EventLog.Exists ("monotempsource", "."), "#B6");
Assert.IsFalse (EventLog.Exists ("monoothersource", "."), "#B7");
} finally {
if (!monologtempExists) {
EventLog.Delete ("monologtemp");
}
}
}
[Test]
public void DeleteEventSource2_MachineName_Empty ()
{
try {
EventLog.DeleteEventSource ("monotempsource", string.Empty);
Assert.Fail ("#A1");
} catch (ArgumentException ex) {
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
Assert.IsNotNull (ex.Message, "#A3");
// Invalid value '' for parameter 'machineName'
Assert.IsTrue (ex.Message.IndexOf ("''") != -1, "#A4");
Assert.IsTrue (ex.Message.IndexOf ("'machineName'") != -1, "#A5");
Assert.IsNull (ex.InnerException, "#A6");
Assert.IsNull (ex.ParamName, "#A7");
}
try {
EventLog.DeleteEventSource ("monotempsource", " \t\n");
Assert.Fail ("#B1");
} catch (ArgumentException ex) {
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
Assert.IsNotNull (ex.Message, "#B3");
// Invalid value ' \t\n' for parameter 'machineName'
Assert.IsTrue (ex.Message.IndexOf ("' \t\n'") != -1, "#B4");
Assert.IsTrue (ex.Message.IndexOf ("'machineName'") != -1, "#B5");
Assert.IsNull (ex.InnerException, "#B6");
Assert.IsNull (ex.ParamName, "#B7");
}
}
[Test]
public void DeleteEventSource2_MachineName_Null ()
{
try {
EventLog.DeleteEventSource ("monotempsource", null);
Assert.Fail ("#A1");
} catch (ArgumentException ex) {
// Invalid value '' for parameter 'machineName'
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
Assert.IsNotNull (ex.Message, "#A3");
Assert.IsTrue (ex.Message.IndexOf ("''") != -1, "#A4");
Assert.IsTrue (ex.Message.IndexOf ("'machineName'") != -1, "#A5");
Assert.IsNull (ex.InnerException, "#A6");
Assert.IsNull (ex.ParamName, "#A7");
}
}
[Test]
public void DeleteEventSource2_Source_DoesNotExist ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
try {
EventLog.DeleteEventSource ("monotempsource", ".");
Assert.Fail ("#1");
} catch (ArgumentException ex) {
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#2");
Assert.IsNotNull (ex.Message, "#3");
Assert.IsTrue (ex.Message.IndexOf ("'monotempsource'") != -1, "#4");
Assert.IsTrue (ex.Message.IndexOf ("'.'") != -1, "#5");
Assert.IsNull (ex.InnerException, "#6");
Assert.IsNull (ex.ParamName, "#7");
}
}
[Test]
[ExpectedException (typeof (ArgumentException))] // The source '' is not registered on machine '.', ...
public void DeleteEventSource2_Source_Empty ()
{
if (EventLogImplType == NULL_IMPL)
// allow test to pass with NULL implementation
throw new ArgumentException ();
EventLog.DeleteEventSource (string.Empty, ".");
}
[Test]
[ExpectedException (typeof (ArgumentException))] // The source '' is not registered on machine '.', ...
public void DeleteEventSource2_Source_Null ()
{
if (EventLogImplType == NULL_IMPL)
// allow test to pass with NULL implementation
throw new ArgumentException ();
EventLog.DeleteEventSource (null, ".");
}
[Test]
public void Entries ()
{
EventLogEntry entry = null;
object current = null;
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", string.Empty)) {
Assert.IsNotNull (eventLog.Entries, "#A1");
Assert.AreEqual (0, eventLog.Entries.Count, "#A2");
IEnumerator enumerator = eventLog.Entries.GetEnumerator ();
Assert.IsNotNull (enumerator, "#B");
try {
current = enumerator.Current;
Assert.Fail ("#C1: " + current);
} catch (InvalidOperationException ex) {
// No current EventLog entry available, cursor is located
// before the first or after the last element of the
// enumeration
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#C2");
Assert.IsNotNull (ex.Message, "#C3");
Assert.IsNull (ex.InnerException, "#C4");
}
Assert.IsFalse (enumerator.MoveNext (), "#D");
try {
current = enumerator.Current;
Assert.Fail ("#E1: " + current);
} catch (InvalidOperationException ex) {
// No current EventLog entry available, cursor is located
// before the first or after the last element of the
// enumeration
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#E2");
Assert.IsNotNull (ex.Message, "#E3");
Assert.IsNull (ex.InnerException, "#E4");
}
EventLogEntry [] entries = new EventLogEntry [0];
eventLog.Entries.CopyTo (entries, 0);
EventLog.WriteEntry ("monotempsource", "Entries1");
try {
current = enumerator.Current;
Assert.Fail ("#G1: " + current);
} catch (InvalidOperationException ex) {
// No current EventLog entry available, cursor is located
// before the first or after the last element of the
// enumeration
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#G2");
Assert.IsNotNull (ex.Message, "#G3");
Assert.IsNull (ex.InnerException, "#G4");
}
Assert.IsFalse (enumerator.MoveNext (), "#H1");
Assert.AreEqual (1, eventLog.Entries.Count, "#H2");
enumerator.Reset ();
entries = new EventLogEntry [0];
try {
eventLog.Entries.CopyTo (entries, 0);
Assert.Fail ("#I1");
} catch (ArgumentException ex) {
// Destination array was not long enough. Check destIndex
// and length, and the array's lower bounds
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#I2");
Assert.IsNotNull (ex.Message, "#I3");
Assert.IsNull (ex.InnerException, "#I4");
Assert.AreEqual ("destinationArray", ex.ParamName, "#I5");
}
entries = new EventLogEntry [1];
eventLog.Entries.CopyTo (entries, 0);
entry = entries [0];
Assert.IsNotNull (entry, "#J1");
Assert.IsNotNull (entry.Source, "#J2");
Assert.AreEqual ("monotempsource", entry.Source, "#J3");
Assert.IsNotNull (entry.ReplacementStrings, "#J4");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#J5");
Assert.AreEqual ("Entries1", entry.ReplacementStrings [0], "#J6");
Assert.IsTrue (enumerator.MoveNext (), "#K1");
Assert.IsNotNull (enumerator.Current, "#K2");
Assert.IsFalse (enumerator.MoveNext (), "#K3");
enumerator.Reset ();
Assert.IsTrue (enumerator.MoveNext (), "#K4");
Assert.IsNotNull (enumerator.Current, "#K5");
Assert.IsFalse (enumerator.MoveNext (), "#K6");
EventLog.WriteEntry ("monotempsource", "Entries2");
EventLog.WriteEntry ("monotempsource", "Entries3");
Assert.IsTrue (enumerator.MoveNext (), "#L");
entry = (EventLogEntry) enumerator.Current;
Assert.IsNotNull (entry, "#M1");
Assert.IsNotNull (entry.Source, "#M2");
Assert.AreEqual ("monotempsource", entry.Source, "#M3");
Assert.IsNotNull (entry.ReplacementStrings, "#M4");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#M5");
Assert.AreEqual ("Entries3", entry.ReplacementStrings [0], "#M6");
enumerator.Reset ();
Assert.IsNotNull (enumerator.Current, "#N1");
Assert.IsTrue (enumerator.MoveNext (), "#N2");
Assert.IsNotNull (enumerator.Current, "#N3");
Assert.IsTrue (enumerator.MoveNext (), "#N4");
Assert.IsNotNull (enumerator.Current, "#N5");
Assert.IsTrue (enumerator.MoveNext (), "#N6");
Assert.IsNotNull (enumerator.Current, "#N7");
Assert.IsFalse (enumerator.MoveNext (), "#N8");
enumerator.Reset ();
try {
current = enumerator.Current;
Assert.Fail ("#O1: " + current);
} catch (InvalidOperationException ex) {
// No current EventLog entry available, cursor is located
// before the first or after the last element of the
// enumeration
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#O2");
Assert.IsNotNull (ex.Message, "#O3");
Assert.IsNull (ex.InnerException, "#O4");
}
Assert.IsTrue (enumerator.MoveNext (), "#P1");
Assert.IsNotNull (enumerator.Current, "#P2");
eventLog.Clear ();
Assert.IsNotNull (enumerator.Current, "#P3");
Assert.IsFalse (enumerator.MoveNext (), "#P4");
Assert.AreEqual (0, eventLog.Entries.Count, "#P5");
try {
current = enumerator.Current;
Assert.Fail ("#Q1: " + current);
} catch (InvalidOperationException ex) {
// No current EventLog entry available, cursor is located
// before the first or after the last element of the
// enumeration
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#Q2");
Assert.IsNotNull (ex.Message, "#Q3");
Assert.IsNull (ex.InnerException, "#Q4");
}
Assert.IsFalse (enumerator.MoveNext (), "#R1");
enumerator.Reset ();
Assert.IsFalse (enumerator.MoveNext (), "#R2");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void Entries_Log_DoesNotExist ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
using (EventLog eventLog = new EventLog ("monologtemp", ".")) {
Assert.IsNotNull (eventLog.Entries, "#A1");
try {
Assert.Fail ("#B1: " + eventLog.Entries.Count);
} catch (InvalidOperationException ex) {
// The event log 'monologtemp' on computer '.' does not exist
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B2");
Assert.IsNotNull (ex.Message, "#B3");
Assert.IsTrue (ex.Message.IndexOf ("'monologtemp'") != -1, "#B4");
Assert.IsTrue (ex.Message.IndexOf ("'.'") != -1, "#B5");
Assert.IsNull (ex.InnerException, "#B6");
}
Assert.IsFalse (EventLog.Exists ("monologtemp", "."), "#B7");
IEnumerator enumerator = eventLog.Entries.GetEnumerator ();
Assert.IsNotNull (enumerator, "#C");
try {
object current = enumerator.Current;
Assert.Fail ("#D1: " + current);
} catch (InvalidOperationException ex) {
// No current EventLog entry available, cursor is located
// before the first or after the last element of the
// enumeration.
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#D2");
Assert.IsNotNull (ex.Message, "#D3");
Assert.IsNull (ex.InnerException, "#D4");
}
try {
enumerator.MoveNext ();
Assert.Fail ("#E1");
} catch (InvalidOperationException ex) {
// The event log 'monologtemp' on computer '.' does not exist
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#E2");
Assert.IsNotNull (ex.Message, "#E3");
Assert.IsTrue (ex.Message.IndexOf ("'monologtemp'") != -1, "#E4");
Assert.IsTrue (ex.Message.IndexOf ("'.'") != -1, "#E5");
Assert.IsNull (ex.InnerException, "#E6");
}
try {
EventLogEntry [] entries = new EventLogEntry [0];
eventLog.Entries.CopyTo (entries, 0);
Assert.Fail ("#F1");
} catch (InvalidOperationException ex) {
// The event log 'monologtemp' on computer '.' does not exist
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#F2");
Assert.IsNotNull (ex.Message, "#F3");
Assert.IsTrue (ex.Message.IndexOf ("'monologtemp'") != -1, "#F4");
Assert.IsTrue (ex.Message.IndexOf ("'.'") != -1, "#F5");
Assert.IsNull (ex.InnerException, "#F6");
}
enumerator.Reset ();
}
}
[Test]
public void Entries_Log_Empty ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.SourceExists ("monoothersource", "."))
Assert.Ignore ("Event log source 'monoothersource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
try {
using (EventLog eventLog = new EventLog (string.Empty, ".")) {
Assert.IsNotNull (eventLog.Entries, "#A1");
try {
Assert.Fail ("#B1: " + eventLog.Entries.Count);
} catch (ArgumentException ex) {
// Log property value has not been specified
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
Assert.IsNotNull (ex.Message, "#B3");
Assert.IsNull (ex.InnerException, "#B4");
Assert.IsNull (ex.ParamName, "#B5");
}
IEnumerator enumerator = eventLog.Entries.GetEnumerator ();
Assert.IsNotNull (enumerator, "#C");
try {
object current = enumerator.Current;
Assert.Fail ("#D1: " + current);
} catch (InvalidOperationException ex) {
// No current EventLog entry available, cursor is located
// before the first or after the last element of the
// enumeration
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#D2");
Assert.IsNotNull (ex.Message, "#D3");
Assert.IsNull (ex.InnerException, "#D4");
}
try {
enumerator.MoveNext ();
Assert.Fail ("#E1");
} catch (ArgumentException ex) {
// Log property value has not been specified
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#E2");
Assert.IsNotNull (ex.Message, "#E3");
Assert.IsNull (ex.InnerException, "#E4");
Assert.IsNull (ex.ParamName, "#E5");
}
try {
EventLogEntry [] entries = new EventLogEntry [0];
eventLog.Entries.CopyTo (entries, 0);
Assert.Fail ("#F1");
} catch (ArgumentException ex) {
// Log property value has not been specified
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#F2");
Assert.IsNotNull (ex.Message, "#F3");
Assert.IsNull (ex.InnerException, "#F4");
Assert.IsNull (ex.ParamName, "#F5");
}
enumerator.Reset ();
// set non-existing source
eventLog.Source = "monoothersource";
try {
Assert.Fail ("#G1: " + eventLog.Entries.Count);
} catch (ArgumentException ex) {
// Log property value has not been specified
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#G2");
Assert.IsNotNull (ex.Message, "#G3");
Assert.IsNull (ex.InnerException, "#G4");
Assert.IsNull (ex.ParamName, "#G5");
}
enumerator = eventLog.Entries.GetEnumerator ();
Assert.IsNotNull (enumerator, "#H");
try {
object current = enumerator.Current;
Assert.Fail ("#I1: " + current);
} catch (InvalidOperationException ex) {
// No current EventLog entry available, cursor is located
// before the first or after the last element of the
// enumeration
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#I2");
Assert.IsNotNull (ex.Message, "#I3");
Assert.IsNull (ex.InnerException, "#I4");
}
try {
enumerator.MoveNext ();
Assert.Fail ("#J1");
} catch (ArgumentException ex) {
// Log property value has not been specified
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#J2");
Assert.IsNotNull (ex.Message, "#J3");
Assert.IsNull (ex.InnerException, "#J4");
Assert.IsNull (ex.ParamName, "#J5");
}
try {
EventLogEntry [] entries = new EventLogEntry [0];
eventLog.Entries.CopyTo (entries, 0);
Assert.Fail ("#K1");
} catch (ArgumentException ex) {
// Log property value has not been specified
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#K2");
Assert.IsNotNull (ex.Message, "#K3");
Assert.IsNull (ex.InnerException, "#K4");
Assert.IsNull (ex.ParamName, "#K5");
}
enumerator.Reset ();
// set existing source
eventLog.Source = "monotempsource";
Assert.AreEqual (0, eventLog.Entries.Count, "#L1");
enumerator = eventLog.Entries.GetEnumerator ();
Assert.IsNotNull (enumerator, "#L2");
try {
object current = enumerator.Current;
Assert.Fail ("#M1: " + current);
} catch (InvalidOperationException ex) {
// No current EventLog entry available, cursor is located
// before the first or after the last element of the
// enumeration
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#M2");
Assert.IsNotNull (ex.Message, "#M3");
Assert.IsNull (ex.InnerException, "#M4");
}
Assert.IsFalse (enumerator.MoveNext ());
try {
object current = enumerator.Current;
Assert.Fail ("#N1: " + current);
} catch (InvalidOperationException ex) {
// No current EventLog entry available, cursor is located
// before the first or after the last element of the
// enumeration
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#N2");
Assert.IsNotNull (ex.Message, "#N3");
Assert.IsNull (ex.InnerException, "#N4");
}
enumerator.Reset ();
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void Entries_Source_DoesNotExist ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.SourceExists ("monoothersource", "."))
Assert.Ignore ("Event log source 'monoothersource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monoothersource")) {
Assert.IsNotNull (eventLog.Entries, "#A1");
Assert.AreEqual (0, eventLog.Entries.Count, "#A2");
EventLog.WriteEntry ("monotempsource", "Entries_Source_DoesNotExist1");
Assert.AreEqual (1, eventLog.Entries.Count, "#A3");
IEnumerator enumerator = eventLog.Entries.GetEnumerator ();
Assert.IsNotNull (enumerator, "#B");
try {
object current = enumerator.Current;
Assert.Fail ("#C1: " + current);
} catch (InvalidOperationException ex) {
// No current EventLog entry available, cursor is located
// before the first or after the last element of the
// enumeration
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#C2");
Assert.IsNotNull (ex.Message, "#C3");
Assert.IsNull (ex.InnerException, "#C4");
}
Assert.IsTrue (enumerator.MoveNext (), "#D1");
Assert.IsNotNull (enumerator.Current, "#D2");
Assert.IsFalse (enumerator.MoveNext (), "#D3");
EventLogEntry [] entries = new EventLogEntry [1];
eventLog.Entries.CopyTo (entries, 0);
EventLogEntry entry = entries [0];
Assert.IsNotNull (entry, "#E1");
Assert.IsNotNull (entry.Source, "#E2");
Assert.AreEqual ("monotempsource", entry.Source, "#E3");
Assert.IsNotNull (entry.ReplacementStrings, "#E4");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#E5");
Assert.AreEqual ("Entries_Source_DoesNotExist1", entry.ReplacementStrings [0], "#E6");
try {
object current = enumerator.Current;
Assert.Fail ("#E1: " + current);
} catch (InvalidOperationException ex) {
// No current EventLog entry available, cursor is located
// before the first or after the last element of the
// enumeration
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#E2");
Assert.IsNotNull (ex.Message, "#E3");
Assert.IsNull (ex.InnerException, "#E4");
}
try {
object current = enumerator.Current;
Assert.Fail ("#F1: " + current);
} catch (InvalidOperationException ex) {
// No current EventLog entry available, cursor is located
// before the first or after the last element of the
// enumeration
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#F2");
Assert.IsNotNull (ex.Message, "#F3");
Assert.IsNull (ex.InnerException, "#F4");
}
EventLog.WriteEntry ("monotempsource", "Entries_Source_DoesNotExist2");
try {
object current = enumerator.Current;
Assert.Fail ("#G1: " + current);
} catch (InvalidOperationException ex) {
// No current EventLog entry available, cursor is located
// before the first or after the last element of the
// enumeration
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#G2");
Assert.IsNotNull (ex.Message, "#G3");
Assert.IsNull (ex.InnerException, "#G4");
}
Assert.IsFalse (enumerator.MoveNext (), "#H1");
Assert.AreEqual (2, eventLog.Entries.Count, "#H2");
entries = new EventLogEntry [1];
try {
eventLog.Entries.CopyTo (entries, 0);
Assert.Fail ("#I1");
} catch (ArgumentException ex) {
// Destination array was not long enough. Check destIndex
// and length, and the array's lower bounds
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#I2");
Assert.IsNotNull (ex.Message, "#I3");
Assert.IsNull (ex.InnerException, "#I4");
Assert.AreEqual ("destinationArray", ex.ParamName, "#I5");
}
entries = new EventLogEntry [2];
eventLog.Entries.CopyTo (entries, 0);
entry = entries [0];
Assert.IsNotNull (entry, "#J1");
Assert.IsNotNull (entry.Source, "#J2");
Assert.AreEqual ("monotempsource", entry.Source, "#J3");
Assert.IsNotNull (entry.ReplacementStrings, "#J4");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#J5");
Assert.AreEqual ("Entries_Source_DoesNotExist1", entry.ReplacementStrings [0], "#J6");
entry = entries [1];
Assert.IsNotNull (entry, "#K1");
Assert.IsNotNull (entry.Source, "#K2");
Assert.AreEqual ("monotempsource", entry.Source, "#K3");
Assert.IsNotNull (entry.ReplacementStrings, "#K4");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#K5");
Assert.AreEqual ("Entries_Source_DoesNotExist2", entry.ReplacementStrings [0], "#K6");
Assert.IsFalse (enumerator.MoveNext (), "#L1");
enumerator.Reset ();
Assert.IsTrue (enumerator.MoveNext (), "#L2");
Assert.IsNotNull (enumerator.Current, "#L3");
Assert.IsTrue (enumerator.MoveNext (), "#L4");
Assert.IsNotNull (enumerator.Current, "#L5");
Assert.IsFalse (enumerator.MoveNext (), "#M1");
enumerator.Reset ();
Assert.IsTrue (enumerator.MoveNext (), "#M2");
eventLog.Clear ();
Assert.IsNotNull (enumerator.Current, "#M3");
Assert.IsFalse (enumerator.MoveNext (), "#M4");
try {
object current = enumerator.Current;
Assert.Fail ("#N1: " + current);
} catch (InvalidOperationException ex) {
// No current EventLog entry available, cursor is located
// before the first or after the last element of the
// enumeration
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#N2");
Assert.IsNotNull (ex.Message, "#N3");
Assert.IsNull (ex.InnerException, "#N4");
}
Assert.IsFalse (enumerator.MoveNext (), "#O1");
enumerator.Reset ();
Assert.IsFalse (enumerator.MoveNext (), "#O2");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void Entries_Source_Empty ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", string.Empty)) {
Assert.IsNotNull (eventLog.Entries, "#A1");
Assert.AreEqual (0, eventLog.Entries.Count, "#A2");
EventLog.WriteEntry ("monotempsource", "Entries_Source_Empty1");
Assert.AreEqual (1, eventLog.Entries.Count, "#A3");
IEnumerator enumerator = eventLog.Entries.GetEnumerator ();
Assert.IsNotNull (enumerator, "#B");
try {
object current = enumerator.Current;
Assert.Fail ("#C1: " + current);
} catch (InvalidOperationException ex) {
// No current EventLog entry available, cursor is located
// before the first or after the last element of the
// enumeration
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#C2");
Assert.IsNotNull (ex.Message, "#C3");
Assert.IsNull (ex.InnerException, "#C4");
}
Assert.IsTrue (enumerator.MoveNext (), "#D1");
Assert.IsNotNull (enumerator.Current, "#D2");
Assert.IsFalse (enumerator.MoveNext (), "#D3");
EventLogEntry [] entries = new EventLogEntry [1];
eventLog.Entries.CopyTo (entries, 0);
EventLogEntry entry = entries [0];
Assert.IsNotNull (entry, "#E1");
Assert.IsNotNull (entry.Source, "#E2");
Assert.AreEqual ("monotempsource", entry.Source, "#E3");
Assert.IsNotNull (entry.ReplacementStrings, "#E4");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#E5");
Assert.AreEqual ("Entries_Source_Empty1", entry.ReplacementStrings [0], "#E6");
try {
object current = enumerator.Current;
Assert.Fail ("#E1: " + current);
} catch (InvalidOperationException ex) {
// No current EventLog entry available, cursor is located
// before the first or after the last element of the
// enumeration
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#E2");
Assert.IsNotNull (ex.Message, "#E3");
Assert.IsNull (ex.InnerException, "#E4");
}
EventLog.WriteEntry ("monotempsource", "Entries_Source_Empty2");
try {
object current = enumerator.Current;
Assert.Fail ("#G1: " + current);
} catch (InvalidOperationException ex) {
// No current EventLog entry available, cursor is located
// before the first or after the last element of the
// enumeration
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#G2");
Assert.IsNotNull (ex.Message, "#G3");
Assert.IsNull (ex.InnerException, "#G4");
}
Assert.IsFalse (enumerator.MoveNext (), "#H1");
Assert.AreEqual (2, eventLog.Entries.Count, "#H2");
entries = new EventLogEntry [1];
try {
eventLog.Entries.CopyTo (entries, 0);
Assert.Fail ("#I1");
} catch (ArgumentException ex) {
// Destination array was not long enough. Check destIndex
// and length, and the array's lower bounds
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#I2");
Assert.IsNotNull (ex.Message, "#I3");
Assert.IsNull (ex.InnerException, "#I4");
Assert.AreEqual ("destinationArray", ex.ParamName, "#I5");
}
entries = new EventLogEntry [2];
eventLog.Entries.CopyTo (entries, 0);
entry = entries [0];
Assert.IsNotNull (entry, "#J1");
Assert.IsNotNull (entry.Source, "#J2");
Assert.AreEqual ("monotempsource", entry.Source, "#J3");
Assert.IsNotNull (entry.ReplacementStrings, "#J4");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#J5");
Assert.AreEqual ("Entries_Source_Empty1", entry.ReplacementStrings [0], "#J6");
entry = entries [1];
Assert.IsNotNull (entry, "#K1");
Assert.IsNotNull (entry.Source, "#K2");
Assert.AreEqual ("monotempsource", entry.Source, "#K3");
Assert.IsNotNull (entry.ReplacementStrings, "#K4");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#K5");
Assert.AreEqual ("Entries_Source_Empty2", entry.ReplacementStrings [0], "#K6");
Assert.IsFalse (enumerator.MoveNext (), "#L1");
enumerator.Reset ();
Assert.IsTrue (enumerator.MoveNext (), "#L2");
Assert.IsNotNull (enumerator.Current, "#L3");
Assert.IsTrue (enumerator.MoveNext (), "#L4");
Assert.IsNotNull (enumerator.Current, "#L5");
Assert.IsFalse (enumerator.MoveNext (), "#M1");
enumerator.Reset ();
Assert.IsTrue (enumerator.MoveNext (), "#M2");
eventLog.Clear ();
Assert.IsNotNull (enumerator.Current, "#M3");
Assert.IsFalse (enumerator.MoveNext (), "#M4");
try {
object current = enumerator.Current;
Assert.Fail ("#N1: " + current);
} catch (InvalidOperationException ex) {
// No current EventLog entry available, cursor is located
// before the first or after the last element of the
// enumeration
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#N2");
Assert.IsNotNull (ex.Message, "#N3");
Assert.IsNull (ex.InnerException, "#N4");
}
Assert.IsFalse (enumerator.MoveNext (), "#O1");
enumerator.Reset ();
Assert.IsFalse (enumerator.MoveNext (), "#O2");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void Entries_Source_Null ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", null)) {
Assert.IsNotNull (eventLog.Entries, "#A1");
Assert.AreEqual (0, eventLog.Entries.Count, "#A2");
EventLog.WriteEntry ("monotempsource", "Entries_Source_Null1");
Assert.AreEqual (1, eventLog.Entries.Count, "#A3");
IEnumerator enumerator = eventLog.Entries.GetEnumerator ();
Assert.IsNotNull (enumerator, "#B");
try {
object current = enumerator.Current;
Assert.Fail ("#C1: " + current);
} catch (InvalidOperationException ex) {
// No current EventLog entry available, cursor is located
// before the first or after the last element of the
// enumeration
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#C2");
Assert.IsNotNull (ex.Message, "#C3");
Assert.IsNull (ex.InnerException, "#C4");
}
Assert.IsTrue (enumerator.MoveNext (), "#D1");
Assert.IsNotNull (enumerator.Current, "#D2");
Assert.IsFalse (enumerator.MoveNext (), "#D3");
EventLogEntry [] entries = new EventLogEntry [1];
eventLog.Entries.CopyTo (entries, 0);
EventLogEntry entry = entries [0];
Assert.IsNotNull (entry, "#E1");
Assert.IsNotNull (entry.Source, "#E2");
Assert.AreEqual ("monotempsource", entry.Source, "#E3");
Assert.IsNotNull (entry.ReplacementStrings, "#E4");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#E5");
Assert.AreEqual ("Entries_Source_Null1", entry.ReplacementStrings [0], "#E6");
try {
object current = enumerator.Current;
Assert.Fail ("#E1: " + current);
} catch (InvalidOperationException ex) {
// No current EventLog entry available, cursor is located
// before the first or after the last element of the
// enumeration
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#E2");
Assert.IsNotNull (ex.Message, "#E3");
Assert.IsNull (ex.InnerException, "#E4");
}
try {
object current = enumerator.Current;
Assert.Fail ("#F1: " + current);
} catch (InvalidOperationException ex) {
// No current EventLog entry available, cursor is located
// before the first or after the last element of the
// enumeration
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#F2");
Assert.IsNotNull (ex.Message, "#F3");
Assert.IsNull (ex.InnerException, "#F4");
}
EventLog.WriteEntry ("monotempsource", "Entries_Source_Null2");
try {
object current = enumerator.Current;
Assert.Fail ("#G1: " + current);
} catch (InvalidOperationException ex) {
// No current EventLog entry available, cursor is located
// before the first or after the last element of the
// enumeration
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#G2");
Assert.IsNotNull (ex.Message, "#G3");
Assert.IsNull (ex.InnerException, "#G4");
}
Assert.IsFalse (enumerator.MoveNext (), "#H1");
Assert.AreEqual (2, eventLog.Entries.Count, "#H2");
entries = new EventLogEntry [1];
try {
eventLog.Entries.CopyTo (entries, 0);
Assert.Fail ("#I1");
} catch (ArgumentException ex) {
// Destination array was not long enough. Check destIndex
// and length, and the array's lower bounds
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#I2");
Assert.IsNotNull (ex.Message, "#I3");
Assert.IsNull (ex.InnerException, "#I4");
Assert.AreEqual ("destinationArray", ex.ParamName, "#I5");
}
entries = new EventLogEntry [2];
eventLog.Entries.CopyTo (entries, 0);
entry = entries [0];
Assert.IsNotNull (entry, "#J1");
Assert.IsNotNull (entry.Source, "#J2");
Assert.AreEqual ("monotempsource", entry.Source, "#J3");
Assert.IsNotNull (entry.ReplacementStrings, "#J4");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#J5");
Assert.AreEqual ("Entries_Source_Null1", entry.ReplacementStrings [0], "#J6");
entry = entries [1];
Assert.IsNotNull (entry, "#K1");
Assert.IsNotNull (entry.Source, "#K2");
Assert.AreEqual ("monotempsource", entry.Source, "#K3");
Assert.IsNotNull (entry.ReplacementStrings, "#K4");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#K5");
Assert.AreEqual ("Entries_Source_Null2", entry.ReplacementStrings [0], "#K6");
Assert.IsFalse (enumerator.MoveNext (), "#L1");
enumerator.Reset ();
Assert.IsTrue (enumerator.MoveNext (), "#L2");
Assert.IsNotNull (enumerator.Current, "#L3");
Assert.IsTrue (enumerator.MoveNext (), "#L4");
Assert.IsNotNull (enumerator.Current, "#L5");
Assert.IsFalse (enumerator.MoveNext (), "#M1");
enumerator.Reset ();
Assert.IsTrue (enumerator.MoveNext (), "#M2");
eventLog.Clear ();
Assert.IsNotNull (enumerator.Current, "#M3");
Assert.IsFalse (enumerator.MoveNext (), "#M4");
try {
object current = enumerator.Current;
Assert.Fail ("#N1: " + current);
} catch (InvalidOperationException ex) {
// No current EventLog entry available, cursor is located
// before the first or after the last element of the
// enumeration
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#N2");
Assert.IsNotNull (ex.Message, "#N3");
Assert.IsNull (ex.InnerException, "#N4");
}
Assert.IsFalse (enumerator.MoveNext (), "#O1");
enumerator.Reset ();
Assert.IsFalse (enumerator.MoveNext (), "#O2");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void Exists1_Win32 ()
{
if (EventLogImplType != WIN32_IMPL)
// test can only pass with win32 implementation
Assert.Ignore ("Wrong EventLogImplType.");
using (RegistryKey logKey = FindLogKeyByName ("monotempsource")) {
if (logKey != null)
Assert.Ignore ("Event log 'monotempsource' should not exist.");
}
using (RegistryKey logKey = FindLogKeyByName ("monologtemp")) {
if (logKey != null)
Assert.Ignore ("Event log 'monologtemp' should not exist.");
}
using (RegistryKey logKey = FindLogKeyByName ("monologother")) {
if (logKey != null)
Assert.Ignore ("Event log 'monologother' should not exist.");
}
using (RegistryKey sourceKey = FindSourceKeyByName ("monotempsource")) {
if (sourceKey != null)
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
}
Assert.IsFalse (EventLog.Exists ("monologtemp"), "#A1");
Assert.IsFalse (EventLog.Exists ("MonoLogTemp"), "#A2");
Assert.IsFalse (EventLog.Exists ("monologother"), "#A3");
Assert.IsFalse (EventLog.Exists ("MonoLogOther"), "#A4");
using (RegistryKey eventLogKey = EventLogKey) {
RegistryKey logKey = eventLogKey.CreateSubKey ("monologtemp");
try {
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#B1");
Assert.IsTrue (EventLog.Exists ("MonoLogTemp"), "#B2");
Assert.IsFalse (EventLog.Exists ("monologother"), "#B3");
Assert.IsFalse (EventLog.Exists ("MonoLogOther"), "#B3");
Assert.IsFalse (EventLog.Exists ("monotempsource"), "#BXXX");
using (RegistryKey sourceKey = logKey.CreateSubKey ("monotempsource")) {
}
Assert.IsFalse (EventLog.Exists ("monotempsource"), "#C1");
Assert.IsFalse (EventLog.Exists ("MonoTempSource"), "#C2");
} finally {
if (logKey != null) {
logKey.Close ();
eventLogKey.DeleteSubKeyTree ("monologtemp");
}
}
}
}
[Test]
public void Exists1_Log_Empty ()
{
Assert.IsFalse (EventLog.Exists (string.Empty));
}
[Test]
public void Exists1_Log_Null ()
{
Assert.IsFalse (EventLog.Exists (null));
}
[Test]
public void Exists2_Win32 ()
{
if (EventLogImplType != WIN32_IMPL)
// test can only pass with win32 implementation
Assert.Ignore ("Wrong EventLogImplType.");
using (RegistryKey logKey = FindLogKeyByName ("monotempsource")) {
if (logKey != null)
Assert.Ignore ("Event log 'monotempsource' should not exist.");
}
using (RegistryKey logKey = FindLogKeyByName ("monologtemp")) {
if (logKey != null)
Assert.Ignore ("Event log 'monologtemp' should not exist.");
}
using (RegistryKey logKey = FindLogKeyByName ("monologother")) {
if (logKey != null)
Assert.Ignore ("Event log 'monologother' should not exist.");
}
using (RegistryKey sourceKey = FindSourceKeyByName ("monotempsource")) {
if (sourceKey != null)
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
}
Assert.IsFalse (EventLog.Exists ("monologtemp", "."), "#A1");
Assert.IsFalse (EventLog.Exists ("MonoLogTemp", "."), "#A2");
Assert.IsFalse (EventLog.Exists ("monologother", "."), "#A3");
Assert.IsFalse (EventLog.Exists ("MonoLogOther", "."), "#A4");
using (RegistryKey eventLogKey = EventLogKey) {
RegistryKey logKey = eventLogKey.CreateSubKey ("monologtemp");
try {
Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#B1");
Assert.IsTrue (EventLog.Exists ("MonoLogTemp", "."), "#B2");
Assert.IsFalse (EventLog.Exists ("monologother", "."), "#B3");
Assert.IsFalse (EventLog.Exists ("MonoLogOther", "."), "#B3");
using (RegistryKey sourceKey = logKey.CreateSubKey ("monotempsource")) {
}
Assert.IsFalse (EventLog.Exists ("monotempsource", "."), "#C1");
Assert.IsFalse (EventLog.Exists ("MonoTempSource", "."), "#C2");
} finally {
if (logKey != null) {
logKey.Close ();
eventLogKey.DeleteSubKeyTree ("monologtemp");
}
}
}
}
[Test]
public void Exists2_Log_Empty ()
{
Assert.IsFalse (EventLog.Exists (string.Empty, "."));
}
[Test]
public void Exists2_Log_Null ()
{
Assert.IsFalse (EventLog.Exists (null, "."));
}
[Test]
public void Exists2_MachineName_Empty ()
{
try {
EventLog.Exists ("monologtemp", string.Empty);
Assert.Fail ("#A1");
} catch (ArgumentException ex) {
// Invalid format for argument machineName
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
Assert.IsNotNull (ex.Message, "#A3");
Assert.IsTrue (ex.Message.IndexOf ("machineName") != -1, "#A4");
Assert.IsNull (ex.InnerException, "#A5");
Assert.IsNull (ex.ParamName, "#A6");
}
try {
EventLog.Exists (string.Empty, string.Empty);
Assert.Fail ("#B1");
} catch (ArgumentException ex) {
// Invalid format for argument machineName
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
Assert.IsNotNull (ex.Message, "#B3");
Assert.IsTrue (ex.Message.IndexOf ("machineName") != -1, "#B4");
Assert.IsNull (ex.InnerException, "#B5");
Assert.IsNull (ex.ParamName, "#B6");
}
try {
EventLog.Exists (null, string.Empty);
Assert.Fail ("#C1");
} catch (ArgumentException ex) {
// Invalid format for argument machineName
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#C2");
Assert.IsNotNull (ex.Message, "#C3");
Assert.IsTrue (ex.Message.IndexOf ("machineName") != -1, "#C4");
Assert.IsNull (ex.InnerException, "#C5");
Assert.IsNull (ex.ParamName, "#C6");
}
try {
EventLog.Exists ("monologtemp", " \t\n");
Assert.Fail ("#D1");
} catch (ArgumentException ex) {
// Invalid format for argument machineName
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#D2");
Assert.IsNotNull (ex.Message, "#D3");
Assert.IsTrue (ex.Message.IndexOf ("machineName") != -1, "#D4");
Assert.IsNull (ex.InnerException, "#D5");
Assert.IsNull (ex.ParamName, "#D6");
}
}
[Test]
public void Exists2_MachineName_Null ()
{
try {
EventLog.Exists ("monologtemp", null);
Assert.Fail ("#A1");
} catch (ArgumentException ex) {
// Invalid format for argument machineName
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
Assert.IsNotNull (ex.Message, "#A3");
Assert.IsTrue (ex.Message.IndexOf ("machineName") != -1, "#A4");
Assert.IsNull (ex.InnerException, "#A5");
Assert.IsNull (ex.ParamName, "#A6");
}
try {
EventLog.Exists (string.Empty, null);
Assert.Fail ("#B1");
} catch (ArgumentException ex) {
// Invalid format for argument machineName
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
Assert.IsNotNull (ex.Message, "#B3");
Assert.IsTrue (ex.Message.IndexOf ("machineName") != -1, "#B4");
Assert.IsNull (ex.InnerException, "#B5");
Assert.IsNull (ex.ParamName, "#B6");
}
try {
EventLog.Exists (null, null);
Assert.Fail ("#C1");
} catch (ArgumentException ex) {
// Invalid format for argument machineName
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#C2");
Assert.IsNotNull (ex.Message, "#C3");
Assert.IsTrue (ex.Message.IndexOf ("machineName") != -1, "#C4");
Assert.IsNull (ex.InnerException, "#C5");
Assert.IsNull (ex.ParamName, "#C6");
}
}
[Test]
public void Log ()
{
EventLog eventLog = new EventLog ();
eventLog.Log = string.Empty;
Assert.AreEqual (string.Empty, eventLog.Log, "#A1");
Assert.AreEqual (string.Empty, eventLog.Source, "#A2");
eventLog.Log = "monologtemp";
Assert.AreEqual ("monologtemp", eventLog.Log, "#A3");
Assert.AreEqual (string.Empty, eventLog.Source, "#A4");
eventLog.Log = string.Empty;
Assert.AreEqual (string.Empty, eventLog.Log, "#A5");
Assert.AreEqual (string.Empty, eventLog.Source, "#A6");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
if (EventLog.Exists ("shouldnotexist", "."))
Assert.Ignore ("Event log 'shouldnotexist' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
try {
eventLog.Log = "shouldnotexist";
eventLog.Source = "monotempsource";
Assert.AreEqual ("shouldnotexist", eventLog.Log, "#B1");
eventLog.Log = string.Empty;
Assert.AreEqual ("monologtemp", eventLog.Log, "#B2");
eventLog.Source = null;
Assert.AreEqual ("monologtemp", eventLog.Log, "#B3");
eventLog.Log = "MONOLOGTEMP";
Assert.AreEqual ("monologtemp", eventLog.Log, "#B4");
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
eventLog.Close ();
}
}
[Test]
[ExpectedException (typeof (ArgumentNullException))]
public void Log_Null ()
{
EventLog eventLog = new EventLog ();
eventLog.Log = null;
}
[Test]
public void LogNameFromSourceName ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
Assert.IsNotNull (EventLog.LogNameFromSourceName ("monotempsource", "."), "#1");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#2");
Assert.IsNotNull (EventLog.LogNameFromSourceName ("monologtemp", "."), "#3");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monologtemp", "."), "#4");
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void LogNameFromSourceName_MachineName_Empty ()
{
try {
EventLog.LogNameFromSourceName ("monotempsource", string.Empty);
Assert.Fail ("#A1");
} catch (ArgumentException ex) {
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
Assert.IsNotNull (ex.Message, "#A3");
// Invalid value '' for parameter 'MachineName'
Assert.IsTrue (ex.Message.IndexOf ("''") != -1, "#A4");
Assert.IsTrue (ex.Message.IndexOf ("'MachineName'") != -1, "#A5");
Assert.IsNull (ex.InnerException, "#A6");
Assert.IsNull (ex.ParamName, "#A7");
}
try {
EventLog.LogNameFromSourceName ("monotempsource", " \t\n");
Assert.Fail ("#B1");
} catch (ArgumentException ex) {
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
Assert.IsNotNull (ex.Message, "#B3");
// Invalid value ' \t\n' for parameter 'MachineName'
Assert.IsTrue (ex.Message.IndexOf ("' \t\n'") != -1, "#B4");
Assert.IsTrue (ex.Message.IndexOf ("'MachineName'") != -1, "#B5");
Assert.IsNull (ex.InnerException, "#B6");
Assert.IsNull (ex.ParamName, "#B7");
}
}
[Test]
public void LogNameFromSourceName_MachineName_Null ()
{
try {
EventLog.LogNameFromSourceName ("monotempsource", null);
Assert.Fail ("#A1");
} catch (ArgumentException ex) {
// Invalid value '' for parameter 'MachineName'
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
Assert.IsNotNull (ex.Message, "#A3");
Assert.IsTrue (ex.Message.IndexOf ("''") != -1, "#A4");
Assert.IsTrue (ex.Message.IndexOf ("'MachineName'") != -1, "#A5");
Assert.IsNull (ex.InnerException, "#A6");
Assert.IsNull (ex.ParamName, "#A7");
}
}
[Test]
public void LogNameFromSourceName_Source_DoesNotExist ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
string logName = EventLog.LogNameFromSourceName ("monotempsource", ".");
Assert.IsNotNull (logName, "#1");
Assert.AreEqual (string.Empty, logName, "#2");
}
[Test]
public void LogNameFromSourceName_Source_Empty ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
string logName = EventLog.LogNameFromSourceName (string.Empty, ".");
Assert.IsNotNull (logName, "#1");
Assert.AreEqual (string.Empty, logName, "#2");
}
[Test]
public void LogNameFromSourceName_Source_Null ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
string logName = EventLog.LogNameFromSourceName (null, ".");
Assert.IsNotNull (logName, "#1");
Assert.AreEqual (string.Empty, logName, "#2");
}
[Test]
public void MachineName_Null ()
{
EventLog eventLog = new EventLog ();
try {
eventLog.MachineName = null;
Assert.Fail ("#1");
} catch (ArgumentException ex) {
// Invalid value for property MachineName
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#2");
Assert.IsNull (ex.InnerException, "#3");
Assert.IsNotNull (ex.Message, "#4");
Assert.IsTrue (ex.Message.IndexOf (" ") != -1, "#5");
Assert.IsTrue (ex.Message.IndexOf ("MachineName") != -1, "#6");
Assert.IsNull (ex.ParamName, "#7");
}
}
[Test]
public void MachineName ()
{
string machineName = Environment.MachineName.ToLower ();
EventLog eventLog = new EventLog ("Application", machineName);
eventLog.EnableRaisingEvents = true;
Assert.AreEqual (machineName, eventLog.MachineName, "#1");
eventLog.MachineName = Environment.MachineName.ToUpper ();
Assert.AreEqual (machineName, eventLog.MachineName, "#2");
Assert.IsTrue (eventLog.EnableRaisingEvents, "#3");
eventLog.MachineName = ".";
Assert.AreEqual (".", eventLog.MachineName, "#4");
Assert.IsFalse (eventLog.EnableRaisingEvents, "#5");
}
[Test]
public void MachineName_Empty ()
{
EventLog eventLog = new EventLog ();
try {
eventLog.MachineName = string.Empty;
Assert.Fail ("#A1");
} catch (ArgumentException ex) {
// Invalid value for property MachineName
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
Assert.IsNull (ex.InnerException, "#A3");
Assert.IsNotNull (ex.Message, "#A4");
Assert.IsTrue (ex.Message.IndexOf (" ") != -1, "#A5");
Assert.IsTrue (ex.Message.IndexOf ("MachineName") != -1, "#A6");
Assert.IsNull (ex.ParamName, "#A7");
}
try {
eventLog.MachineName = " \t\n";
Assert.Fail ("#B1");
} catch (ArgumentException ex) {
// Invalid value for property MachineName
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
Assert.IsNull (ex.InnerException, "#B3");
Assert.IsNotNull (ex.Message, "#B4");
Assert.IsTrue (ex.Message.IndexOf (" ") != -1, "#B5");
Assert.IsTrue (ex.Message.IndexOf ("MachineName") != -1, "#B6");
Assert.IsNull (ex.ParamName, "#B7");
}
}
[Test]
public void Source ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
using (EventLog eventLog = new EventLog ()) {
eventLog.Source = null;
Assert.AreEqual (string.Empty, eventLog.Source, "#A1");
Assert.AreEqual (string.Empty, eventLog.Log, "#A2");
eventLog.Source = "monotempsource";
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.AreEqual (string.Empty, eventLog.Log, "#A4");
eventLog.Source = null;
Assert.AreEqual (string.Empty, eventLog.Source, "#A5");
Assert.AreEqual (string.Empty, eventLog.Log, "#A6");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
Assert.AreEqual (string.Empty, eventLog.Source, "#B1");
Assert.AreEqual (string.Empty, eventLog.Log, "#B2");
eventLog.Source = "monotempsource";
Assert.AreEqual ("monotempsource", eventLog.Source, "#B3");
Assert.AreEqual ("monologtemp", eventLog.Log, "#B4");
eventLog.Log = string.Empty;
Assert.AreEqual ("monotempsource", eventLog.Source, "#B5");
Assert.AreEqual ("monologtemp", eventLog.Log, "#B6");
eventLog.Source = null;
Assert.AreEqual (string.Empty, eventLog.Source, "#B7");
Assert.AreEqual ("monologtemp", eventLog.Log, "#B8");
eventLog.Log = string.Empty;
Assert.AreEqual (string.Empty, eventLog.Source, "#B9");
Assert.AreEqual (string.Empty, eventLog.Log, "#B10");
} finally {
EventLog.Delete ("monologtemp");
}
eventLog.Source = "whatever";
Assert.AreEqual ("whatever", eventLog.Source, "#C1");
eventLog.Source = "WHATEVER";
Assert.AreEqual ("whatever", eventLog.Source, "#C2");
}
}
[Test]
public void SourceExists1_Win32 ()
{
if (EventLogImplType != WIN32_IMPL)
// test can only pass with win32 implementation
Assert.Ignore ("Wrong EventLogImplType.");
using (RegistryKey logKey = FindLogKeyByName ("monotempsource")) {
if (logKey != null)
Assert.Ignore ("Event log 'monotempsource' should not exist.");
}
using (RegistryKey logKey = FindLogKeyByName ("monologtemp")) {
if (logKey != null)
Assert.Ignore ("Event log 'monologtemp' should not exist.");
}
using (RegistryKey sourceKey = FindSourceKeyByName ("monotempsource")) {
if (sourceKey != null)
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
}
Assert.IsFalse (EventLog.SourceExists ("monotempsource"), "#A1");
Assert.IsFalse (EventLog.SourceExists ("MonoTempSource"), "#A2");
using (RegistryKey eventLogKey = EventLogKey) {
RegistryKey logKey = eventLogKey.CreateSubKey ("monotempsource");
try {
// make sure we do not mistake a log for a source
Assert.IsFalse (EventLog.SourceExists ("monotempsource"), "#B1");
Assert.IsFalse (EventLog.SourceExists ("MonoTempSource"), "#B2");
} finally {
if (logKey != null) {
logKey.Close ();
eventLogKey.DeleteSubKeyTree ("monotempsource");
}
}
logKey = eventLogKey.CreateSubKey ("monologtemp");
try {
RegistryKey sourceKey = null;
try {
// create temporary source key
sourceKey = logKey.CreateSubKey ("monotempsource");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#C1");
Assert.IsTrue (EventLog.SourceExists ("MonoTempSource"), "#C2");
} finally {
if (sourceKey != null) {
sourceKey.Close ();
logKey.DeleteSubKeyTree ("monotempsource");
}
}
} finally {
if (logKey != null) {
logKey.Close ();
eventLogKey.DeleteSubKeyTree ("monologtemp");
}
}
}
}
[Test]
public void SourceExists1_Source_Empty ()
{
Assert.IsFalse (EventLog.SourceExists (string.Empty));
}
[Test]
public void SourceExists1_Source_Null ()
{
Assert.IsFalse (EventLog.SourceExists (null));
}
[Test]
public void SourceExists2_Win32 ()
{
if (EventLogImplType != WIN32_IMPL)
// test can only pass with win32 implementation
Assert.Ignore ("Wrong EventLogImplType.");
using (RegistryKey logKey = FindLogKeyByName ("monotempsource")) {
if (logKey != null)
Assert.Ignore ("Event log 'monotempsource' should not exist.");
}
using (RegistryKey logKey = FindLogKeyByName ("monologtemp")) {
if (logKey != null)
Assert.Ignore ("Event log 'monologtemp' should not exist.");
}
using (RegistryKey sourceKey = FindSourceKeyByName ("monotempsource")) {
if (sourceKey != null)
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
}
Assert.IsFalse (EventLog.SourceExists ("monotempsource", "."), "#1");
using (RegistryKey eventLogKey = EventLogKey) {
RegistryKey logKey = eventLogKey.CreateSubKey ("monotempsource");
try {
// make sure we do not mistake a log for a source
Assert.IsFalse (EventLog.SourceExists ("monotempsource", "."), "#2");
} finally {
if (logKey != null) {
logKey.Close ();
eventLogKey.DeleteSubKeyTree ("monotempsource");
}
}
logKey = eventLogKey.CreateSubKey ("monologtemp");
try {
RegistryKey sourceKey = null;
try {
// create temporary source key
sourceKey = logKey.CreateSubKey ("monotempsource");
Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#3");
} finally {
if (sourceKey != null) {
sourceKey.Close ();
logKey.DeleteSubKeyTree ("monotempsource");
}
}
} finally {
if (logKey != null) {
logKey.Close ();
eventLogKey.DeleteSubKeyTree ("monologtemp");
}
}
}
}
[Test]
public void SourceExists2_MachineName_Empty ()
{
try {
EventLog.SourceExists ("monotempsource", string.Empty);
Assert.Fail ("#A1");
} catch (ArgumentException ex) {
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
Assert.IsNotNull (ex.Message, "#A3");
// Invalid value '' for parameter 'machineName'
Assert.IsTrue (ex.Message.IndexOf ("''") != -1, "#A4");
Assert.IsTrue (ex.Message.IndexOf ("'machineName'") != -1, "#A5");
Assert.IsNull (ex.InnerException, "#A6");
Assert.IsNull (ex.ParamName, "#A7");
}
try {
EventLog.SourceExists ("monotempsource", " \t\n");
Assert.Fail ("#B1");
} catch (ArgumentException ex) {
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
Assert.IsNotNull (ex.Message, "#B3");
// Invalid value ' \t\n' for parameter 'machineName'
Assert.IsTrue (ex.Message.IndexOf ("' \t\n'") != -1, "#B4");
Assert.IsTrue (ex.Message.IndexOf ("'machineName'") != -1, "#B5");
Assert.IsNull (ex.InnerException, "#B6");
Assert.IsNull (ex.ParamName, "#B7");
}
}
[Test]
public void SourceExists2_MachineName_Null ()
{
try {
EventLog.SourceExists ("monotempsource", null);
Assert.Fail ("#1");
} catch (ArgumentException ex) {
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#2");
Assert.IsNotNull (ex.Message, "#3");
// Invalid value '' for parameter 'machineName'
Assert.IsTrue (ex.Message.IndexOf ("''") != -1, "#4");
Assert.IsTrue (ex.Message.IndexOf ("'machineName'") != -1, "#5");
Assert.IsNull (ex.InnerException, "#6");
Assert.IsNull (ex.ParamName, "#7");
}
}
[Test]
public void SourceExists2_Source_Empty ()
{
Assert.IsFalse (EventLog.SourceExists (string.Empty, "."));
}
[Test]
public void SourceExists2_Source_Null ()
{
Assert.IsFalse (EventLog.SourceExists (null, "."));
}
[Test]
public void WriteEntry1 ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
eventLog.WriteEntry ("WriteEntry1a");
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
EventLogEntry entry = eventLog.Entries[eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(0)", entry.Category, "#B3");
Assert.AreEqual (0, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#B7");
Assert.AreEqual (0, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual ("WriteEntry1a", entry.ReplacementStrings[0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
eventLog.WriteEntry ("WriteEntry1b" + Environment.NewLine + "ok");
entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#C1");
Assert.IsNotNull (entry.Category, "#C2");
Assert.AreEqual ("(0)", entry.Category, "#C3");
Assert.AreEqual (0, entry.CategoryNumber, "#C4");
Assert.IsNotNull (entry.Data, "#C5");
Assert.AreEqual (0, entry.Data.Length, "#C6");
Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#C7");
Assert.AreEqual (0, entry.EventID, "#C8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#C9");
Assert.IsNotNull (entry.MachineName, "#C10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#C11");
Assert.IsNotNull (entry.ReplacementStrings, "#C12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#C13");
Assert.AreEqual ("WriteEntry1b" + Environment.NewLine + "ok", entry.ReplacementStrings [0], "#C14");
Assert.IsNotNull (entry.Source, "#C15");
Assert.AreEqual ("monotempsource", entry.Source, "#C16");
Assert.IsNull (entry.UserName, "#C17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry1_Log_Empty ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
bool applicationLogExists = EventLog.Exists ("Application", ".");
// specified source does not exist, so use Application log
try {
using (EventLog eventLog = new EventLog (string.Empty, ".", "monotempsource")) {
eventLog.WriteEntry ("WriteEntry1_Log_Empty");
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("Application", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("Application"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.AreEqual ("Application", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
}
} finally {
if (!applicationLogExists) {
if (EventLog.Exists ("Application"))
EventLog.Delete ("Application");
} else {
if (EventLog.SourceExists ("monotempsource", "."))
EventLog.DeleteEventSource ("monotempsource", ".");
}
}
}
[Test]
public void WriteEntry1_Log_Mismatch ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
if (EventLog.Exists ("monologother", "."))
Assert.Ignore ("Event log 'monologother' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologother", ".", "monotempsource")) {
eventLog.WriteEntry ("WriteEntry1_Log_Mismatch");
}
} catch (ArgumentException ex) {
// The source 'monotempsource' is not registered in log
// 'monologother' (it is registered in log 'monologtemp').
// The Source and Log properties must be matched, or you may
// set Log to the empty string, and it will automatically be
// matched to the Source property
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
Assert.IsNotNull (ex.Message, "#A3");
Assert.IsTrue (ex.Message.IndexOf ("'monotempsource'") != -1, "#A4");
Assert.IsTrue (ex.Message.IndexOf ("'monologother'") != -1, "#A5");
Assert.IsTrue (ex.Message.IndexOf ("'monologtemp'") != -1, "#A6");
Assert.IsNull (ex.InnerException, "#A7");
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
if (EventLog.Exists ("monologother"))
EventLog.Delete ("monologother");
}
}
[Test]
public void WriteEntry1_Message_Empty ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
eventLog.WriteEntry (string.Empty);
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(0)", entry.Category, "#B3");
Assert.AreEqual (0, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#B7");
Assert.AreEqual (0, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry1_Message_Null ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
eventLog.WriteEntry (null);
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(0)", entry.Category, "#B3");
Assert.AreEqual (0, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#B7");
Assert.AreEqual (0, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry1_Source_DoesNotExist ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.SourceExists ("monoothersource", "."))
Assert.Ignore ("Event log source 'monoothersource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monoothersource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
eventLog.WriteEntry ("WriteEntry1");
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
EventLogEntry entry = eventLog.Entries[eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(0)", entry.Category, "#B3");
Assert.AreEqual (0, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#B7");
Assert.AreEqual (0, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual ("WriteEntry1", entry.ReplacementStrings[0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
[ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
public void WriteEntry1_Source_Empty ()
{
EventLog eventLog = new EventLog ("monologtemp");
eventLog.WriteEntry ("test");
}
[Test]
public void WriteEntry2 ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
eventLog.WriteEntry ("WriteEntry2a", EventLogEntryType.Information);
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(0)", entry.Category, "#B3");
Assert.AreEqual (0, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#B7");
Assert.AreEqual (0, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual ("WriteEntry2a", entry.ReplacementStrings [0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
eventLog.WriteEntry ("WriteEntry2b" + Environment.NewLine + "ok", EventLogEntryType.Error);
entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#C1");
Assert.IsNotNull (entry.Category, "#C2");
Assert.AreEqual ("(0)", entry.Category, "#C3");
Assert.AreEqual (0, entry.CategoryNumber, "#C4");
Assert.IsNotNull (entry.Data, "#C5");
Assert.AreEqual (0, entry.Data.Length, "#C6");
Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#C7");
Assert.AreEqual (0, entry.EventID, "#C8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#C9");
Assert.IsNotNull (entry.MachineName, "#C10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#C11");
Assert.IsNotNull (entry.ReplacementStrings, "#C12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#C13");
Assert.AreEqual ("WriteEntry2b" + Environment.NewLine + "ok", entry.ReplacementStrings [0], "#C14");
Assert.IsNotNull (entry.Source, "#C15");
Assert.AreEqual ("monotempsource", entry.Source, "#C16");
Assert.IsNull (entry.UserName, "#C17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry2_Log_Empty ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
bool applicationLogExists = EventLog.Exists ("Application", ".");
// specified source does not exist, so use Application log
try {
using (EventLog eventLog = new EventLog (string.Empty, ".", "monotempsource")) {
eventLog.WriteEntry ("WriteEntry1_Log_Empty", EventLogEntryType.Error);
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("Application", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("Application"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.AreEqual ("Application", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
}
} finally {
if (!applicationLogExists) {
if (EventLog.Exists ("Application"))
EventLog.Delete ("Application");
} else {
if (EventLog.SourceExists ("monotempsource", "."))
EventLog.DeleteEventSource ("monotempsource", ".");
}
}
}
[Test]
public void WriteEntry2_Log_Mismatch ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
if (EventLog.Exists ("monologother", "."))
Assert.Ignore ("Event log 'monologother' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologother", ".", "monotempsource")) {
// valid message
try {
eventLog.WriteEntry ("WriteEntry2_Log_Mismatch1",
EventLogEntryType.Error);
Assert.Fail ("#A1");
} catch (ArgumentException ex) {
// The source 'monotempsource' is not registered in log
// 'monologother' (it is registered in log 'monologtemp').
// The Source and Log properties must be matched, or you may
// set Log to the empty string, and it will automatically be
// matched to the Source property
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
Assert.IsNotNull (ex.Message, "#A3");
Assert.IsTrue (ex.Message.IndexOf ("'monotempsource'") != -1, "#A4");
Assert.IsTrue (ex.Message.IndexOf ("'monologother'") != -1, "#A5");
Assert.IsTrue (ex.Message.IndexOf ("'monologtemp'") != -1, "#A6");
Assert.IsNull (ex.InnerException, "#A7");
}
// invalid type
try {
eventLog.WriteEntry ("WriteEntry2_Log_Mismatch2",
(EventLogEntryType) 666);
Assert.Fail ("#B1");
} catch (InvalidEnumArgumentException) {
}
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
if (EventLog.Exists ("monologother"))
EventLog.Delete ("monologother");
}
}
[Test]
public void WriteEntry2_Message_Empty ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
eventLog.WriteEntry (string.Empty, EventLogEntryType.FailureAudit);
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(0)", entry.Category, "#B3");
Assert.AreEqual (0, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.FailureAudit, entry.EntryType, "#B7");
Assert.AreEqual (0, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry2_Message_Null ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
eventLog.WriteEntry (null, EventLogEntryType.SuccessAudit);
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(0)", entry.Category, "#B3");
Assert.AreEqual (0, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.SuccessAudit, entry.EntryType, "#B7");
Assert.AreEqual (0, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry2_Source_DoesNotExist ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.SourceExists ("monoothersource", "."))
Assert.Ignore ("Event log source 'monoothersource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monoothersource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
eventLog.WriteEntry ("WriteEntry1", EventLogEntryType.Warning);
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(0)", entry.Category, "#B3");
Assert.AreEqual (0, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.Warning, entry.EntryType, "#B7");
Assert.AreEqual (0, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual ("WriteEntry1", entry.ReplacementStrings [0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
[ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
public void WriteEntry2_Source_Empty ()
{
EventLog eventLog = new EventLog ("monologtemp");
eventLog.WriteEntry ("test", EventLogEntryType.Information);
}
[Test]
[ExpectedException (typeof (InvalidEnumArgumentException))] // Enum argument value 666 is not valid for type. type should be a value from EventLogEntryType.
public void WriteEntry2_Type_NotDefined ()
{
EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource");
eventLog.WriteEntry ("test", (EventLogEntryType) 666);
}
[Test]
public void WriteEntry3 ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
EventLog.WriteEntry ("monotempsource", "WriteEntry3a");
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(0)", entry.Category, "#B3");
Assert.AreEqual (0, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#B7");
Assert.AreEqual (0, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual ("WriteEntry3a", entry.ReplacementStrings [0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
EventLog.WriteEntry ("monotempsource", "WriteEntry3b"
+ Environment.NewLine + "ok");
entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#C1");
Assert.IsNotNull (entry.Category, "#C2");
Assert.AreEqual ("(0)", entry.Category, "#C3");
Assert.AreEqual (0, entry.CategoryNumber, "#C4");
Assert.IsNotNull (entry.Data, "#C5");
Assert.AreEqual (0, entry.Data.Length, "#C6");
Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#C7");
Assert.AreEqual (0, entry.EventID, "#C8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#C9");
Assert.IsNotNull (entry.MachineName, "#C10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#C11");
Assert.IsNotNull (entry.ReplacementStrings, "#C12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#C13");
Assert.AreEqual ("WriteEntry3b" + Environment.NewLine + "ok", entry.ReplacementStrings [0], "#C14");
Assert.IsNotNull (entry.Source, "#C15");
Assert.AreEqual ("monotempsource", entry.Source, "#C16");
Assert.IsNull (entry.UserName, "#C17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry3_Message_Empty ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
EventLog.WriteEntry ("monotempsource", string.Empty);
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#A1");
Assert.IsNotNull (entry.Category, "#A2");
Assert.AreEqual ("(0)", entry.Category, "#A3");
Assert.AreEqual (0, entry.CategoryNumber, "#A4");
Assert.IsNotNull (entry.Data, "#A5");
Assert.AreEqual (0, entry.Data.Length, "#A6");
Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#A7");
Assert.AreEqual (0, entry.EventID, "#A8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#A9");
Assert.IsNotNull (entry.MachineName, "#A10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#A11");
Assert.IsNotNull (entry.ReplacementStrings, "#A12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#A13");
Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#A14");
Assert.IsNotNull (entry.Source, "#A15");
Assert.AreEqual ("monotempsource", entry.Source, "#A16");
Assert.IsNull (entry.UserName, "#A17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry3_Message_Null ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
EventLog.WriteEntry ("monotempsource", null);
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#A1");
Assert.IsNotNull (entry.Category, "#A2");
Assert.AreEqual ("(0)", entry.Category, "#A3");
Assert.AreEqual (0, entry.CategoryNumber, "#A4");
Assert.IsNotNull (entry.Data, "#A5");
Assert.AreEqual (0, entry.Data.Length, "#A6");
Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#A7");
Assert.AreEqual (0, entry.EventID, "#A8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#A9");
Assert.IsNotNull (entry.MachineName, "#A10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#A11");
Assert.IsNotNull (entry.ReplacementStrings, "#A12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#A13");
Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#A14");
Assert.IsNotNull (entry.Source, "#A15");
Assert.AreEqual ("monotempsource", entry.Source, "#A16");
Assert.IsNull (entry.UserName, "#A17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry3_Source_DoesNotExist ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
bool applicationLogExists = EventLog.Exists ("Application");
try {
EventLog.WriteEntry ("monotempsource", "test");
Assert.IsTrue (EventLog.Exists ("Application"), "#A1");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A2");
Assert.AreEqual ("Application", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A3");
if (EventLogImplType == WIN32_IMPL)
// win32 API does not return entries in order for
// Application log
return;
using (EventLog eventLog = new EventLog ("Application", ".", "monotempsource")) {
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(0)", entry.Category, "#B3");
Assert.AreEqual (0, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#B7");
Assert.AreEqual (0, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual ("test", entry.ReplacementStrings [0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
}
} finally {
if (!applicationLogExists) {
if (EventLog.Exists ("Application"))
EventLog.Delete ("Application");
} else {
if (EventLog.SourceExists ("monotempsource", "."))
EventLog.DeleteEventSource ("monotempsource", ".");
}
}
}
[Test]
[ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
public void WriteEntry3_Source_Empty ()
{
EventLog.WriteEntry (string.Empty, "test");
}
[Test]
[ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
public void WriteEntry3_Source_Null ()
{
EventLog.WriteEntry (null, "test");
}
[Test]
public void WriteEntry4 ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
eventLog.WriteEntry ("WriteEntry1", EventLogEntryType.Information, 56);
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(0)", entry.Category, "#B3");
Assert.AreEqual (0, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#B7");
Assert.AreEqual (56, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual ("WriteEntry1", entry.ReplacementStrings [0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
eventLog.WriteEntry ("WriteEntry2", EventLogEntryType.Error, 0);
entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#C1");
Assert.IsNotNull (entry.Category, "#C2");
Assert.AreEqual ("(0)", entry.Category, "#C3");
Assert.AreEqual (0, entry.CategoryNumber, "#C4");
Assert.IsNotNull (entry.Data, "#C5");
Assert.AreEqual (0, entry.Data.Length, "#C6");
Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#C7");
Assert.AreEqual (0, entry.EventID, "#C8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#C9");
Assert.IsNotNull (entry.MachineName, "#C10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#C11");
Assert.IsNotNull (entry.ReplacementStrings, "#C12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#C13");
Assert.AreEqual ("WriteEntry2", entry.ReplacementStrings [0], "#C14");
Assert.IsNotNull (entry.Source, "#C15");
Assert.AreEqual ("monotempsource", entry.Source, "#C16");
Assert.IsNull (entry.UserName, "#C17");
eventLog.WriteEntry ("WriteEntry2", EventLogEntryType.Error, ushort.MaxValue);
entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#D1");
Assert.IsNotNull (entry.Category, "#D2");
Assert.AreEqual ("(0)", entry.Category, "#D3");
Assert.AreEqual (0, entry.CategoryNumber, "#D4");
Assert.IsNotNull (entry.Data, "#D5");
Assert.AreEqual (0, entry.Data.Length, "#D6");
Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#D7");
Assert.AreEqual (ushort.MaxValue, entry.EventID, "#D8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#D9");
Assert.IsNotNull (entry.MachineName, "#D10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#D11");
Assert.IsNotNull (entry.ReplacementStrings, "#D12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#D13");
Assert.AreEqual ("WriteEntry2", entry.ReplacementStrings [0], "#D14");
Assert.IsNotNull (entry.Source, "#D15");
Assert.AreEqual ("monotempsource", entry.Source, "#D16");
Assert.IsNull (entry.UserName, "#D17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry4_EventID_Invalid ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource");
try {
eventLog.WriteEntry ("test", EventLogEntryType.Information, -1);
Assert.Fail ("#A1");
} catch (ArgumentException ex) {
// Invalid eventID value '-1'. It must be in the range between '0' and '65535'.
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
Assert.IsNotNull (ex.Message, "#A3");
Assert.IsTrue (ex.Message.IndexOf ("'-1'") != -1, "#A4");
Assert.IsTrue (ex.Message.IndexOf ("'0'") != -1, "#A5");
Assert.IsTrue (ex.Message.IndexOf ("'65535'") != -1, "#A6");
Assert.IsNull (ex.InnerException, "#A7");
Assert.IsFalse (EventLog.Exists ("monologtemp"), "#A8");
Assert.IsFalse (EventLog.SourceExists ("monotempsource"), "#A9");
Assert.AreEqual (string.Empty, EventLog.LogNameFromSourceName ("monotempsource", "."), "#A10");
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
try {
eventLog.WriteEntry ("test", EventLogEntryType.Information, 65536);
Assert.Fail ("#B1");
} catch (ArgumentException ex) {
// Invalid eventID value '65536'. It must be in the range between '0' and '65535'.
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
Assert.IsNotNull (ex.Message, "#B3");
Assert.IsTrue (ex.Message.IndexOf ("'65536'") != -1, "#B4");
Assert.IsTrue (ex.Message.IndexOf ("'0'") != -1, "#B5");
Assert.IsTrue (ex.Message.IndexOf ("'65535'") != -1, "#B6");
Assert.IsNull (ex.InnerException, "#B7");
Assert.IsFalse (EventLog.Exists ("monologtemp"), "#B8");
Assert.IsFalse (EventLog.SourceExists ("monotempsource"), "#B9");
Assert.AreEqual (string.Empty, EventLog.LogNameFromSourceName ("monotempsource", "."), "#B10");
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry4_Log_Empty ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
bool applicationLogExists = EventLog.Exists ("Application", ".");
// specified source does not exist, so use Application log
try {
using (EventLog eventLog = new EventLog (string.Empty, ".", "monotempsource")) {
eventLog.WriteEntry ("WriteEntry1_Log_Empty", EventLogEntryType.Error, 555);
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("Application", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("Application"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.AreEqual ("Application", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
}
} finally {
if (!applicationLogExists) {
if (EventLog.Exists ("Application"))
EventLog.Delete ("Application");
} else {
if (EventLog.SourceExists ("monotempsource", "."))
EventLog.DeleteEventSource ("monotempsource", ".");
}
}
}
[Test]
public void WriteEntry4_Log_Mismatch ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
if (EventLog.Exists ("monologother", "."))
Assert.Ignore ("Event log 'monologother' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologother", ".", "monotempsource")) {
// valid message
try {
eventLog.WriteEntry ("WriteEntry4_Log_Mismatch1",
EventLogEntryType.Error, 555);
Assert.Fail ("#A1");
} catch (ArgumentException ex) {
// The source 'monotempsource' is not registered in log
// 'monologother' (it is registered in log 'monologtemp').
// The Source and Log properties must be matched, or you may
// set Log to the empty string, and it will automatically be
// matched to the Source property
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
Assert.IsNotNull (ex.Message, "#A3");
Assert.IsTrue (ex.Message.IndexOf ("'monotempsource'") != -1, "#A4");
Assert.IsTrue (ex.Message.IndexOf ("'monologother'") != -1, "#A5");
Assert.IsTrue (ex.Message.IndexOf ("'monologtemp'") != -1, "#A6");
Assert.IsNull (ex.InnerException, "#A7");
}
// invalid type
try {
eventLog.WriteEntry ("WriteEntry4_Log_Mismatch2",
(EventLogEntryType) 666, 555);
Assert.Fail ("#B1");
} catch (InvalidEnumArgumentException) {
}
// invalid eventID
try {
eventLog.WriteEntry ("WriteEntry4_Log_Mismatch3",
EventLogEntryType.Error, -1);
Assert.Fail ("#C1");
} catch (ArgumentException ex) {
// The source 'monotempsource' is not registered in log
// 'monologother' (it is registered in log 'monologtemp').
// The Source and Log properties must be matched, or you may
// set Log to the empty string, and it will automatically be
// matched to the Source property
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#C2");
Assert.IsNotNull (ex.Message, "#C3");
Assert.IsFalse (ex.Message.IndexOf ("'monotempsource'") != -1, "#C4");
Assert.IsFalse (ex.Message.IndexOf ("'monologother'") != -1, "#C5");
Assert.IsFalse (ex.Message.IndexOf ("'monologtemp'") != -1, "#C6");
Assert.IsTrue (ex.Message.IndexOf ("'-1'") != -1, "#C7");
Assert.IsTrue (ex.Message.IndexOf ("'0'") != -1, "#C8");
Assert.IsTrue (ex.Message.IndexOf ("'65535'") != -1, "#C9");
Assert.IsNull (ex.InnerException, "#C10");
}
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
if (EventLog.Exists ("monologother"))
EventLog.Delete ("monologother");
}
}
[Test]
public void WriteEntry4_Message_Empty ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
eventLog.WriteEntry (string.Empty, EventLogEntryType.FailureAudit, 888);
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(0)", entry.Category, "#B3");
Assert.AreEqual (0, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.FailureAudit, entry.EntryType, "#B7");
Assert.AreEqual (888, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry4_Message_Null ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
eventLog.WriteEntry (null, EventLogEntryType.SuccessAudit, 343);
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(0)", entry.Category, "#B3");
Assert.AreEqual (0, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.SuccessAudit, entry.EntryType, "#B7");
Assert.AreEqual (343, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry4_Source_DoesNotExist ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.SourceExists ("monoothersource", "."))
Assert.Ignore ("Event log source 'monoothersource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monoothersource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
eventLog.WriteEntry ("WriteEntry1", EventLogEntryType.Warning, 2);
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
if (EventLogImplType == WIN32_IMPL)
// win32 API does not return entries in order for
// Application log
return;
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(0)", entry.Category, "#B3");
Assert.AreEqual (0, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.Warning, entry.EntryType, "#B7");
Assert.AreEqual (2, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual ("WriteEntry1", entry.ReplacementStrings [0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
[ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
public void WriteEntry4_Source_Empty ()
{
EventLog eventLog = new EventLog ("monologtemp");
eventLog.WriteEntry ("test", EventLogEntryType.Information, 56);
}
[Test]
[ExpectedException (typeof (InvalidEnumArgumentException))] // Enum argument value 666 is not valid for type. type should be a value from EventLogEntryType.
public void WriteEntry4_Type_NotDefined ()
{
EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource");
eventLog.WriteEntry ("test", (EventLogEntryType) 666, 44);
}
[Test]
public void WriteEntry5 ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
EventLog.WriteEntry ("monotempsource", "WriteEntry3a",
EventLogEntryType.Information);
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(0)", entry.Category, "#B3");
Assert.AreEqual (0, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#B7");
Assert.AreEqual (0, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual ("WriteEntry3a", entry.ReplacementStrings [0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
EventLog.WriteEntry ("monotempsource", "WriteEntry3b"
+ Environment.NewLine + "ok", EventLogEntryType.Error);
entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#C1");
Assert.IsNotNull (entry.Category, "#C2");
Assert.AreEqual ("(0)", entry.Category, "#C3");
Assert.AreEqual (0, entry.CategoryNumber, "#C4");
Assert.IsNotNull (entry.Data, "#C5");
Assert.AreEqual (0, entry.Data.Length, "#C6");
Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#C7");
Assert.AreEqual (0, entry.EventID, "#C8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#C9");
Assert.IsNotNull (entry.MachineName, "#C10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#C11");
Assert.IsNotNull (entry.ReplacementStrings, "#C12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#C13");
Assert.AreEqual ("WriteEntry3b" + Environment.NewLine + "ok", entry.ReplacementStrings [0], "#C14");
Assert.IsNotNull (entry.Source, "#C15");
Assert.AreEqual ("monotempsource", entry.Source, "#C16");
Assert.IsNull (entry.UserName, "#C17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry5_Message_Empty ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
EventLog.WriteEntry ("monotempsource", string.Empty, EventLogEntryType.Error);
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#A1");
Assert.IsNotNull (entry.Category, "#A2");
Assert.AreEqual ("(0)", entry.Category, "#A3");
Assert.AreEqual (0, entry.CategoryNumber, "#A4");
Assert.IsNotNull (entry.Data, "#A5");
Assert.AreEqual (0, entry.Data.Length, "#A6");
Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#A7");
Assert.AreEqual (0, entry.EventID, "#A8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#A9");
Assert.IsNotNull (entry.MachineName, "#A10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#A11");
Assert.IsNotNull (entry.ReplacementStrings, "#A12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#A13");
Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#A14");
Assert.IsNotNull (entry.Source, "#A15");
Assert.AreEqual ("monotempsource", entry.Source, "#A16");
Assert.IsNull (entry.UserName, "#A17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry5_Message_Null ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
EventLog.WriteEntry ("monotempsource", null, EventLogEntryType.FailureAudit);
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#A1");
Assert.IsNotNull (entry.Category, "#A2");
Assert.AreEqual ("(0)", entry.Category, "#A3");
Assert.AreEqual (0, entry.CategoryNumber, "#A4");
Assert.IsNotNull (entry.Data, "#A5");
Assert.AreEqual (0, entry.Data.Length, "#A6");
Assert.AreEqual (EventLogEntryType.FailureAudit, entry.EntryType, "#A7");
Assert.AreEqual (0, entry.EventID, "#A8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#A9");
Assert.IsNotNull (entry.MachineName, "#A10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#A11");
Assert.IsNotNull (entry.ReplacementStrings, "#A12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#A13");
Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#A14");
Assert.IsNotNull (entry.Source, "#A15");
Assert.AreEqual ("monotempsource", entry.Source, "#A16");
Assert.IsNull (entry.UserName, "#A17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry5_Source_DoesNotExist ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
bool applicationLogExists = EventLog.Exists ("Application");
try {
EventLog.WriteEntry ("monotempsource", "test", EventLogEntryType.SuccessAudit);
Assert.IsTrue (EventLog.Exists ("Application"), "#A1");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A2");
Assert.AreEqual ("Application", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A3");
if (EventLogImplType == WIN32_IMPL)
// win32 API does not return entries in order for
// Application log
return;
using (EventLog eventLog = new EventLog ("Application", ".", "monotempsource")) {
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(0)", entry.Category, "#B3");
Assert.AreEqual (0, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.SuccessAudit, entry.EntryType, "#B7");
Assert.AreEqual (0, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual ("test", entry.ReplacementStrings [0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
}
} finally {
if (!applicationLogExists) {
if (EventLog.Exists ("Application"))
EventLog.Delete ("Application");
} else {
if (EventLog.SourceExists ("monotempsource", "."))
EventLog.DeleteEventSource ("monotempsource", ".");
}
}
}
[Test]
[ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
public void WriteEntry5_Source_Empty ()
{
EventLog.WriteEntry (string.Empty, "test", EventLogEntryType.Warning);
}
[Test]
[ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
public void WriteEntry5_Source_Null ()
{
EventLog.WriteEntry (null, "test", EventLogEntryType.Error);
}
[Test]
[ExpectedException (typeof (InvalidEnumArgumentException))] // Enum argument value 666 is not valid for type. type should be a value from EventLogEntryType.
public void WriteEntry5_Type_NotDefined ()
{
EventLog.WriteEntry ("monotempsource", "test", (EventLogEntryType) 666);
}
[Test]
public void WriteEntry6 ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
eventLog.WriteEntry ("WriteEntry6a", EventLogEntryType.Information, 56, 3);
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(3)", entry.Category, "#B3");
Assert.AreEqual (3, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#B7");
Assert.AreEqual (56, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual ("WriteEntry6a", entry.ReplacementStrings [0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
eventLog.WriteEntry ("WriteEntry6b" + Environment.NewLine + "ok",
EventLogEntryType.Error, 0, 0);
entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#C1");
Assert.IsNotNull (entry.Category, "#C2");
Assert.AreEqual ("(0)", entry.Category, "#C3");
Assert.AreEqual (0, entry.CategoryNumber, "#C4");
Assert.IsNotNull (entry.Data, "#C5");
Assert.AreEqual (0, entry.Data.Length, "#C6");
Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#C7");
Assert.AreEqual (0, entry.EventID, "#C8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#C9");
Assert.IsNotNull (entry.MachineName, "#C10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#C11");
Assert.IsNotNull (entry.ReplacementStrings, "#C12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#C13");
Assert.AreEqual ("WriteEntry6b" + Environment.NewLine + "ok", entry.ReplacementStrings [0], "#C14");
Assert.IsNotNull (entry.Source, "#C15");
Assert.AreEqual ("monotempsource", entry.Source, "#C16");
Assert.IsNull (entry.UserName, "#C17");
eventLog.WriteEntry ("WriteEntry6c", EventLogEntryType.Error,
ushort.MaxValue, short.MaxValue);
entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#D1");
Assert.IsNotNull (entry.Category, "#D2");
Assert.AreEqual ("(32767)", entry.Category, "#D3");
Assert.AreEqual (short.MaxValue, entry.CategoryNumber, "#D4");
Assert.IsNotNull (entry.Data, "#D5");
Assert.AreEqual (0, entry.Data.Length, "#D6");
Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#D7");
Assert.AreEqual (ushort.MaxValue, entry.EventID, "#D8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#D9");
Assert.IsNotNull (entry.MachineName, "#D10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#D11");
Assert.IsNotNull (entry.ReplacementStrings, "#D12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#D13");
Assert.AreEqual ("WriteEntry6c", entry.ReplacementStrings [0], "#D14");
Assert.IsNotNull (entry.Source, "#D15");
Assert.AreEqual ("monotempsource", entry.Source, "#D16");
Assert.IsNull (entry.UserName, "#D17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry6_EventID_Invalid ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource");
try {
eventLog.WriteEntry ("test", EventLogEntryType.Information, -1, 5);
Assert.Fail ("#A1");
} catch (ArgumentException ex) {
// Invalid eventID value '-1'. It must be in the range between '0' and '65535'.
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
Assert.IsNotNull (ex.Message, "#A3");
Assert.IsTrue (ex.Message.IndexOf ("'-1'") != -1, "#A4");
Assert.IsTrue (ex.Message.IndexOf ("'0'") != -1, "#A5");
Assert.IsTrue (ex.Message.IndexOf ("'65535'") != -1, "#A6");
Assert.IsNull (ex.InnerException, "#A7");
Assert.IsFalse (EventLog.Exists ("monologtemp"), "#A8");
Assert.IsFalse (EventLog.SourceExists ("monotempsource"), "#A9");
Assert.AreEqual (string.Empty, EventLog.LogNameFromSourceName ("monotempsource", "."), "#A10");
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
try {
eventLog.WriteEntry ("test", EventLogEntryType.Information, 65536, 5);
Assert.Fail ("#B1");
} catch (ArgumentException ex) {
// Invalid eventID value '65536'. It must be in the range between '0' and '65535'.
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
Assert.IsNotNull (ex.Message, "#B3");
Assert.IsTrue (ex.Message.IndexOf ("'65536'") != -1, "#B4");
Assert.IsTrue (ex.Message.IndexOf ("'0'") != -1, "#B5");
Assert.IsTrue (ex.Message.IndexOf ("'65535'") != -1, "#B6");
Assert.IsNull (ex.InnerException, "#B7");
Assert.IsFalse (EventLog.Exists ("monologtemp"), "#B8");
Assert.IsFalse (EventLog.SourceExists ("monotempsource"), "#B9");
Assert.AreEqual (string.Empty, EventLog.LogNameFromSourceName ("monotempsource", "."), "#B10");
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry6_Log_Empty ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
bool applicationLogExists = EventLog.Exists ("Application", ".");
// specified source does not exist, so use Application log
try {
using (EventLog eventLog = new EventLog (string.Empty, ".", "monotempsource")) {
eventLog.WriteEntry ("WriteEntry1_Log_Empty", EventLogEntryType.Error, 555, 5);
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("Application", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("Application"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.AreEqual ("Application", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
}
} finally {
if (!applicationLogExists) {
if (EventLog.Exists ("Application"))
EventLog.Delete ("Application");
} else {
if (EventLog.SourceExists ("monotempsource", "."))
EventLog.DeleteEventSource ("monotempsource", ".");
}
}
}
[Test]
public void WriteEntry6_Log_Mismatch ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
if (EventLog.Exists ("monologother", "."))
Assert.Ignore ("Event log 'monologother' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologother", ".", "monotempsource")) {
// valid message
try {
eventLog.WriteEntry ("WriteEntry6_Log_Mismatch1",
EventLogEntryType.Error, 555, 5);
Assert.Fail ("#A1");
} catch (ArgumentException ex) {
// The source 'monotempsource' is not registered in log
// 'monologother' (it is registered in log 'monologtemp').
// The Source and Log properties must be matched, or you may
// set Log to the empty string, and it will automatically be
// matched to the Source property
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
Assert.IsNotNull (ex.Message, "#A3");
Assert.IsTrue (ex.Message.IndexOf ("'monotempsource'") != -1, "#A4");
Assert.IsTrue (ex.Message.IndexOf ("'monologother'") != -1, "#A5");
Assert.IsTrue (ex.Message.IndexOf ("'monologtemp'") != -1, "#A6");
Assert.IsNull (ex.InnerException, "#A7");
}
// invalid type
try {
eventLog.WriteEntry ("WriteEntry6_Log_Mismatch2",
(EventLogEntryType) 666, 555, 5);
Assert.Fail ("#B1");
} catch (InvalidEnumArgumentException) {
}
// invalid eventID
try {
eventLog.WriteEntry ("WriteEntry6_Log_Mismatch3",
EventLogEntryType.Error, -1, 5);
Assert.Fail ("#C1");
} catch (ArgumentException ex) {
// The source 'monotempsource' is not registered in log
// 'monologother' (it is registered in log 'monologtemp').
// The Source and Log properties must be matched, or you may
// set Log to the empty string, and it will automatically be
// matched to the Source property
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#C2");
Assert.IsNotNull (ex.Message, "#C3");
Assert.IsFalse (ex.Message.IndexOf ("'monotempsource'") != -1, "#C4");
Assert.IsFalse (ex.Message.IndexOf ("'monologother'") != -1, "#C5");
Assert.IsFalse (ex.Message.IndexOf ("'monologtemp'") != -1, "#C6");
Assert.IsTrue (ex.Message.IndexOf ("'-1'") != -1, "#C7");
Assert.IsTrue (ex.Message.IndexOf ("'0'") != -1, "#C8");
Assert.IsTrue (ex.Message.IndexOf ("'65535'") != -1, "#C9");
Assert.IsNull (ex.InnerException, "#C10");
}
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
if (EventLog.Exists ("monologother"))
EventLog.Delete ("monologother");
}
}
[Test]
public void WriteEntry6_Message_Empty ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
eventLog.WriteEntry (string.Empty, EventLogEntryType.FailureAudit, 888, 6);
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(6)", entry.Category, "#B3");
Assert.AreEqual (6, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.FailureAudit, entry.EntryType, "#B7");
Assert.AreEqual (888, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry6_Message_Null ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
eventLog.WriteEntry (null, EventLogEntryType.SuccessAudit, 343, 8);
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(8)", entry.Category, "#B3");
Assert.AreEqual (8, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.SuccessAudit, entry.EntryType, "#B7");
Assert.AreEqual (343, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry6_Source_DoesNotExist ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.SourceExists ("monoothersource", "."))
Assert.Ignore ("Event log source 'monoothersource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monoothersource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
eventLog.WriteEntry ("WriteEntry1", EventLogEntryType.Warning, 2, 4);
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(4)", entry.Category, "#B3");
Assert.AreEqual (4, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.Warning, entry.EntryType, "#B7");
Assert.AreEqual (2, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual ("WriteEntry1", entry.ReplacementStrings [0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
[ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
public void WriteEntry6_Source_Empty ()
{
EventLog eventLog = new EventLog ("monologtemp");
eventLog.WriteEntry ("test", EventLogEntryType.Information, 56, 5);
}
[Test]
[ExpectedException (typeof (InvalidEnumArgumentException))] // Enum argument value 666 is not valid for type. type should be a value from EventLogEntryType.
public void WriteEntry6_Type_NotDefined ()
{
EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource");
eventLog.WriteEntry ("test", (EventLogEntryType) 666, 44, 8);
}
[Test]
public void WriteEntry7 ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
EventLog.WriteEntry ("monotempsource", "WriteEntry7a",
EventLogEntryType.Information, 54);
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(0)", entry.Category, "#B3");
Assert.AreEqual (0, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#B7");
Assert.AreEqual (54, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual ("WriteEntry7a", entry.ReplacementStrings [0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
EventLog.WriteEntry ("monotempsource", "WriteEntry7b"
+ Environment.NewLine + "ok", EventLogEntryType.Error, 0);
entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#C1");
Assert.IsNotNull (entry.Category, "#C2");
Assert.AreEqual ("(0)", entry.Category, "#C3");
Assert.AreEqual (0, entry.CategoryNumber, "#C4");
Assert.IsNotNull (entry.Data, "#C5");
Assert.AreEqual (0, entry.Data.Length, "#C6");
Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#C7");
Assert.AreEqual (0, entry.EventID, "#C8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#C9");
Assert.IsNotNull (entry.MachineName, "#C10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#C11");
Assert.IsNotNull (entry.ReplacementStrings, "#C12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#C13");
Assert.AreEqual ("WriteEntry7b" + Environment.NewLine + "ok", entry.ReplacementStrings [0], "#C14");
Assert.IsNotNull (entry.Source, "#C15");
Assert.AreEqual ("monotempsource", entry.Source, "#C16");
Assert.IsNull (entry.UserName, "#C17");
EventLog.WriteEntry ("monotempsource", "WriteEntry7c"
+ Environment.NewLine + "ok", EventLogEntryType.Error,
ushort.MaxValue);
entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#D1");
Assert.IsNotNull (entry.Category, "#D2");
Assert.AreEqual ("(0)", entry.Category, "#D3");
Assert.AreEqual (0, entry.CategoryNumber, "#D4");
Assert.IsNotNull (entry.Data, "#D5");
Assert.AreEqual (0, entry.Data.Length, "#D6");
Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#D7");
Assert.AreEqual (ushort.MaxValue, entry.EventID, "#D8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#D9");
Assert.IsNotNull (entry.MachineName, "#D10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#D11");
Assert.IsNotNull (entry.ReplacementStrings, "#D12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#D13");
Assert.AreEqual ("WriteEntry7c" + Environment.NewLine + "ok", entry.ReplacementStrings [0], "#D14");
Assert.IsNotNull (entry.Source, "#D15");
Assert.AreEqual ("monotempsource", entry.Source, "#D16");
Assert.IsNull (entry.UserName, "#D17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry7_EventID_Invalid ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
bool applicationLogExists = EventLog.Exists ("Application", ".");
try {
EventLog.WriteEntry ("monotempsource", "test",
EventLogEntryType.Information, -1);
Assert.Fail ("#A1");
} catch (ArgumentException ex) {
// Invalid eventID value '-1'. It must be in the range between '0' and '65535'.
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
Assert.IsNotNull (ex.Message, "#A3");
Assert.IsTrue (ex.Message.IndexOf ("'-1'") != -1, "#A4");
Assert.IsTrue (ex.Message.IndexOf ("'0'") != -1, "#A5");
Assert.IsTrue (ex.Message.IndexOf ("'65535'") != -1, "#A6");
Assert.IsNull (ex.InnerException, "#A7");
if (!applicationLogExists)
Assert.IsFalse (EventLog.Exists ("Application"), "#A8");
Assert.IsFalse (EventLog.SourceExists ("monotempsource"), "#A9");
Assert.AreEqual (string.Empty, EventLog.LogNameFromSourceName ("monotempsource", "."), "#A10");
} finally {
if (!applicationLogExists) {
if (EventLog.Exists ("Application", "."))
EventLog.Delete ("Application", ".");
} else {
if (EventLog.SourceExists ("monotempsource", "."))
EventLog.DeleteEventSource ("monotempsource", ".");
}
}
try {
EventLog.WriteEntry ("monotempsource", "test",
EventLogEntryType.Information, 65536);
Assert.Fail ("#B1");
} catch (ArgumentException ex) {
// Invalid eventID value '65536'. It must be in the range between '0' and '65535'.
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
Assert.IsNotNull (ex.Message, "#B3");
Assert.IsTrue (ex.Message.IndexOf ("'65536'") != -1, "#B4");
Assert.IsTrue (ex.Message.IndexOf ("'0'") != -1, "#B5");
Assert.IsTrue (ex.Message.IndexOf ("'65535'") != -1, "#B6");
Assert.IsNull (ex.InnerException, "#B7");
if (!applicationLogExists)
Assert.IsFalse (EventLog.Exists ("Application"), "#B8");
Assert.IsFalse (EventLog.SourceExists ("monotempsource"), "#B9");
Assert.AreEqual (string.Empty, EventLog.LogNameFromSourceName ("monotempsource", "."), "#B10");
} finally {
if (!applicationLogExists) {
if (EventLog.Exists ("Application", "."))
EventLog.Delete ("Application", ".");
} else {
if (EventLog.SourceExists ("monotempsource", "."))
EventLog.DeleteEventSource ("monotempsource", ".");
}
}
}
[Test]
public void WriteEntry7_Message_Empty ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
EventLog.WriteEntry ("monotempsource", string.Empty,
EventLogEntryType.Error, 56);
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#A1");
Assert.IsNotNull (entry.Category, "#A2");
Assert.AreEqual ("(0)", entry.Category, "#A3");
Assert.AreEqual (0, entry.CategoryNumber, "#A4");
Assert.IsNotNull (entry.Data, "#A5");
Assert.AreEqual (0, entry.Data.Length, "#A6");
Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#A7");
Assert.AreEqual (56, entry.EventID, "#A8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#A9");
Assert.IsNotNull (entry.MachineName, "#A10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#A11");
Assert.IsNotNull (entry.ReplacementStrings, "#A12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#A13");
Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#A14");
Assert.IsNotNull (entry.Source, "#A15");
Assert.AreEqual ("monotempsource", entry.Source, "#A16");
Assert.IsNull (entry.UserName, "#A17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry7_Message_Null ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
EventLog.WriteEntry ("monotempsource", null,
EventLogEntryType.FailureAudit, 76);
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#A1");
Assert.IsNotNull (entry.Category, "#A2");
Assert.AreEqual ("(0)", entry.Category, "#A3");
Assert.AreEqual (0, entry.CategoryNumber, "#A4");
Assert.IsNotNull (entry.Data, "#A5");
Assert.AreEqual (0, entry.Data.Length, "#A6");
Assert.AreEqual (EventLogEntryType.FailureAudit, entry.EntryType, "#A7");
Assert.AreEqual (76, entry.EventID, "#A8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#A9");
Assert.IsNotNull (entry.MachineName, "#A10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#A11");
Assert.IsNotNull (entry.ReplacementStrings, "#A12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#A13");
Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#A14");
Assert.IsNotNull (entry.Source, "#A15");
Assert.AreEqual ("monotempsource", entry.Source, "#A16");
Assert.IsNull (entry.UserName, "#A17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry7_Source_DoesNotExist ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
bool applicationLogExists = EventLog.Exists ("Application");
try {
EventLog.WriteEntry ("monotempsource", "test",
EventLogEntryType.SuccessAudit, 89);
Assert.IsTrue (EventLog.Exists ("Application"), "#A1");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A2");
Assert.AreEqual ("Application", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A3");
if (EventLogImplType == WIN32_IMPL)
// win32 API does not return entries in order for
// Application log
return;
using (EventLog eventLog = new EventLog ("Application", ".", "monotempsource")) {
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(0)", entry.Category, "#B3");
Assert.AreEqual (0, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.SuccessAudit, entry.EntryType, "#B7");
Assert.AreEqual (89, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual ("test", entry.ReplacementStrings [0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
}
} finally {
if (!applicationLogExists) {
if (EventLog.Exists ("Application"))
EventLog.Delete ("Application");
} else {
if (EventLog.SourceExists ("monotempsource", "."))
EventLog.DeleteEventSource ("monotempsource", ".");
}
}
}
[Test]
[ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
public void WriteEntry7_Source_Empty ()
{
EventLog.WriteEntry (string.Empty, "test", EventLogEntryType.Warning, 5);
}
[Test]
[ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
public void WriteEntry7_Source_Null ()
{
EventLog.WriteEntry (null, "test", EventLogEntryType.Error, 5);
}
[Test]
[ExpectedException (typeof (InvalidEnumArgumentException))] // Enum argument value 666 is not valid for type. type should be a value from EventLogEntryType.
public void WriteEntry7_Type_NotDefined ()
{
EventLog.WriteEntry ("monotempsource", "test", (EventLogEntryType) 666, 4);
}
[Test]
public void WriteEntry8 ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
byte [] data = new byte [] { 56, 55, 23, 24 };
eventLog.WriteEntry ("WriteEntry8a", EventLogEntryType.Information, 56, 3, data);
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(3)", entry.Category, "#B3");
Assert.AreEqual (3, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (data, entry.Data, "#B6");
Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#B7");
Assert.AreEqual (56, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual ("WriteEntry8a", entry.ReplacementStrings [0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
eventLog.WriteEntry ("WriteEntry8b" + Environment.NewLine + "ok",
EventLogEntryType.Error, 0, 0, new byte [0]);
entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#C1");
Assert.IsNotNull (entry.Category, "#C2");
Assert.AreEqual ("(0)", entry.Category, "#C3");
Assert.AreEqual (0, entry.CategoryNumber, "#C4");
Assert.IsNotNull (entry.Data, "#C5");
Assert.AreEqual (0, entry.Data.Length, "#C6");
Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#C7");
Assert.AreEqual (0, entry.EventID, "#C8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#C9");
Assert.IsNotNull (entry.MachineName, "#C10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#C11");
Assert.IsNotNull (entry.ReplacementStrings, "#C12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#C13");
Assert.AreEqual ("WriteEntry8b" + Environment.NewLine + "ok", entry.ReplacementStrings [0], "#C14");
Assert.IsNotNull (entry.Source, "#C15");
Assert.AreEqual ("monotempsource", entry.Source, "#C16");
Assert.IsNull (entry.UserName, "#C17");
eventLog.WriteEntry ("WriteEntry8c", EventLogEntryType.Error,
ushort.MaxValue, short.MaxValue, null);
entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#D1");
Assert.IsNotNull (entry.Category, "#D2");
Assert.AreEqual ("(32767)", entry.Category, "#D3");
Assert.AreEqual (short.MaxValue, entry.CategoryNumber, "#D4");
Assert.IsNotNull (entry.Data, "#D5");
Assert.AreEqual (0, entry.Data.Length, "#D6");
Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#D7");
Assert.AreEqual (ushort.MaxValue, entry.EventID, "#D8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#D9");
Assert.IsNotNull (entry.MachineName, "#D10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#D11");
Assert.IsNotNull (entry.ReplacementStrings, "#D12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#D13");
Assert.AreEqual ("WriteEntry8c", entry.ReplacementStrings [0], "#D14");
Assert.IsNotNull (entry.Source, "#D15");
Assert.AreEqual ("monotempsource", entry.Source, "#D16");
Assert.IsNull (entry.UserName, "#D17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry8_EventID_Invalid ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource");
try {
eventLog.WriteEntry ("test", EventLogEntryType.Information, -1,
5, new byte [0]);
Assert.Fail ("#A1");
} catch (ArgumentException ex) {
// Invalid eventID value '-1'. It must be in the range between '0' and '65535'.
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
Assert.IsNotNull (ex.Message, "#A3");
Assert.IsTrue (ex.Message.IndexOf ("'-1'") != -1, "#A4");
Assert.IsTrue (ex.Message.IndexOf ("'0'") != -1, "#A5");
Assert.IsTrue (ex.Message.IndexOf ("'65535'") != -1, "#A6");
Assert.IsNull (ex.InnerException, "#A7");
Assert.IsFalse (EventLog.Exists ("monologtemp"), "#A8");
Assert.IsFalse (EventLog.SourceExists ("monotempsource"), "#A9");
Assert.AreEqual (string.Empty, EventLog.LogNameFromSourceName ("monotempsource", "."), "#A10");
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
try {
eventLog.WriteEntry ("test", EventLogEntryType.Information, 65536,
5, new byte [0]);
Assert.Fail ("#B1");
} catch (ArgumentException ex) {
// Invalid eventID value '65536'. It must be in the range between '0' and '65535'.
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
Assert.IsNotNull (ex.Message, "#B3");
Assert.IsTrue (ex.Message.IndexOf ("'65536'") != -1, "#B4");
Assert.IsTrue (ex.Message.IndexOf ("'0'") != -1, "#B5");
Assert.IsTrue (ex.Message.IndexOf ("'65535'") != -1, "#B6");
Assert.IsNull (ex.InnerException, "#B7");
Assert.IsFalse (EventLog.Exists ("monologtemp"), "#B8");
Assert.IsFalse (EventLog.SourceExists ("monotempsource"), "#B9");
Assert.AreEqual (string.Empty, EventLog.LogNameFromSourceName ("monotempsource", "."), "#B10");
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry8_Log_Empty ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
bool applicationLogExists = EventLog.Exists ("Application", ".");
// specified source does not exist, so use Application log
try {
using (EventLog eventLog = new EventLog (string.Empty, ".", "monotempsource")) {
eventLog.WriteEntry ("WriteEntry1_Log_Empty", EventLogEntryType.Error, 555, 5, new byte [0]);
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("Application", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("Application"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.AreEqual ("Application", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
}
} finally {
if (!applicationLogExists) {
if (EventLog.Exists ("Application"))
EventLog.Delete ("Application");
} else {
if (EventLog.SourceExists ("monotempsource", "."))
EventLog.DeleteEventSource ("monotempsource", ".");
}
}
}
[Test]
public void WriteEntry8_Log_Mismatch ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
if (EventLog.Exists ("monologother", "."))
Assert.Ignore ("Event log 'monologother' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologother", ".", "monotempsource")) {
// valid message
try {
eventLog.WriteEntry ("WriteEntry8_Log_Mismatch1",
EventLogEntryType.Error, 555, 5, new byte [0]);
Assert.Fail ("#A1");
} catch (ArgumentException ex) {
// The source 'monotempsource' is not registered in log
// 'monologother' (it is registered in log 'monologtemp').
// The Source and Log properties must be matched, or you may
// set Log to the empty string, and it will automatically be
// matched to the Source property
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
Assert.IsNotNull (ex.Message, "#A3");
Assert.IsTrue (ex.Message.IndexOf ("'monotempsource'") != -1, "#A4");
Assert.IsTrue (ex.Message.IndexOf ("'monologother'") != -1, "#A5");
Assert.IsTrue (ex.Message.IndexOf ("'monologtemp'") != -1, "#A6");
Assert.IsNull (ex.InnerException, "#A7");
}
// invalid type
try {
eventLog.WriteEntry ("WriteEntry8_Log_Mismatch2",
(EventLogEntryType) 666, 555, 5, new byte [0]);
Assert.Fail ("#B1");
} catch (InvalidEnumArgumentException) {
}
// invalid eventID
try {
eventLog.WriteEntry ("WriteEntry8_Log_Mismatch3",
EventLogEntryType.Error, -1, 5, new byte [0]);
Assert.Fail ("#C1");
} catch (ArgumentException ex) {
// The source 'monotempsource' is not registered in log
// 'monologother' (it is registered in log 'monologtemp').
// The Source and Log properties must be matched, or you may
// set Log to the empty string, and it will automatically be
// matched to the Source property
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#C2");
Assert.IsNotNull (ex.Message, "#C3");
Assert.IsFalse (ex.Message.IndexOf ("'monotempsource'") != -1, "#C4");
Assert.IsFalse (ex.Message.IndexOf ("'monologother'") != -1, "#C5");
Assert.IsFalse (ex.Message.IndexOf ("'monologtemp'") != -1, "#C6");
Assert.IsTrue (ex.Message.IndexOf ("'-1'") != -1, "#C7");
Assert.IsTrue (ex.Message.IndexOf ("'0'") != -1, "#C8");
Assert.IsTrue (ex.Message.IndexOf ("'65535'") != -1, "#C9");
Assert.IsNull (ex.InnerException, "#C10");
}
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
if (EventLog.Exists ("monologother"))
EventLog.Delete ("monologother");
}
}
[Test]
public void WriteEntry8_Message_Empty ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
eventLog.WriteEntry (string.Empty, EventLogEntryType.FailureAudit, 888, 6, new byte [0]);
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(6)", entry.Category, "#B3");
Assert.AreEqual (6, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.FailureAudit, entry.EntryType, "#B7");
Assert.AreEqual (888, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry8_Message_Null ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
eventLog.WriteEntry (null, EventLogEntryType.SuccessAudit, 343, 8, new byte [0]);
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(8)", entry.Category, "#B3");
Assert.AreEqual (8, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.SuccessAudit, entry.EntryType, "#B7");
Assert.AreEqual (343, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry8_Source_DoesNotExist ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.SourceExists ("monoothersource", "."))
Assert.Ignore ("Event log source 'monoothersource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monoothersource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
eventLog.WriteEntry ("WriteEntry1", EventLogEntryType.Warning, 2, 4, new byte [0]);
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(4)", entry.Category, "#B3");
Assert.AreEqual (4, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.Warning, entry.EntryType, "#B7");
Assert.AreEqual (2, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual ("WriteEntry1", entry.ReplacementStrings [0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
[ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
public void WriteEntry8_Source_Empty ()
{
EventLog eventLog = new EventLog ("monologtemp");
eventLog.WriteEntry ("test", EventLogEntryType.Information, 56, 5, new byte [0]);
}
[Test]
[ExpectedException (typeof (InvalidEnumArgumentException))] // Enum argument value 666 is not valid for type. type should be a value from EventLogEntryType.
public void WriteEntry8_Type_NotDefined ()
{
EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource");
eventLog.WriteEntry ("test", (EventLogEntryType) 666, 44, 8, new byte [0]);
}
[Test]
public void WriteEntry9 ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
EventLog.WriteEntry ("monotempsource", "WriteEntry9a",
EventLogEntryType.Information, 54, 5);
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(5)", entry.Category, "#B3");
Assert.AreEqual (5, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#B7");
Assert.AreEqual (54, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual ("WriteEntry9a", entry.ReplacementStrings [0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
EventLog.WriteEntry ("monotempsource", "WriteEntry9b"
+ Environment.NewLine + "ok", EventLogEntryType.Error,
0, 0);
entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#C1");
Assert.IsNotNull (entry.Category, "#C2");
Assert.AreEqual ("(0)", entry.Category, "#C3");
Assert.AreEqual (0, entry.CategoryNumber, "#C4");
Assert.IsNotNull (entry.Data, "#C5");
Assert.AreEqual (0, entry.Data.Length, "#C6");
Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#C7");
Assert.AreEqual (0, entry.EventID, "#C8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#C9");
Assert.IsNotNull (entry.MachineName, "#C10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#C11");
Assert.IsNotNull (entry.ReplacementStrings, "#C12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#C13");
Assert.AreEqual ("WriteEntry9b" + Environment.NewLine + "ok", entry.ReplacementStrings [0], "#C14");
Assert.IsNotNull (entry.Source, "#C15");
Assert.AreEqual ("monotempsource", entry.Source, "#C16");
Assert.IsNull (entry.UserName, "#C17");
EventLog.WriteEntry ("monotempsource", "WriteEntry9c"
+ Environment.NewLine + "ok", EventLogEntryType.Error,
ushort.MaxValue, short.MaxValue);
entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#D1");
Assert.IsNotNull (entry.Category, "#D2");
Assert.AreEqual ("(32767)", entry.Category, "#D3");
Assert.AreEqual (32767, entry.CategoryNumber, "#D4");
Assert.IsNotNull (entry.Data, "#D5");
Assert.AreEqual (0, entry.Data.Length, "#D6");
Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#D7");
Assert.AreEqual (ushort.MaxValue, entry.EventID, "#D8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#D9");
Assert.IsNotNull (entry.MachineName, "#D10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#D11");
Assert.IsNotNull (entry.ReplacementStrings, "#D12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#D13");
Assert.AreEqual ("WriteEntry9c" + Environment.NewLine + "ok", entry.ReplacementStrings [0], "#D14");
Assert.IsNotNull (entry.Source, "#D15");
Assert.AreEqual ("monotempsource", entry.Source, "#D16");
Assert.IsNull (entry.UserName, "#D17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry9_EventID_Invalid ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
bool applicationLogExists = EventLog.Exists ("Application", ".");
try {
EventLog.WriteEntry ("monotempsource", "test",
EventLogEntryType.Information, -1, 5);
Assert.Fail ("#A1");
} catch (ArgumentException ex) {
// Invalid eventID value '-1'. It must be in the range between '0' and '65535'.
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
Assert.IsNotNull (ex.Message, "#A3");
Assert.IsTrue (ex.Message.IndexOf ("'-1'") != -1, "#A4");
Assert.IsTrue (ex.Message.IndexOf ("'0'") != -1, "#A5");
Assert.IsTrue (ex.Message.IndexOf ("'65535'") != -1, "#A6");
Assert.IsNull (ex.InnerException, "#A7");
if (!applicationLogExists)
Assert.IsFalse (EventLog.Exists ("Application"), "#A8");
Assert.IsFalse (EventLog.SourceExists ("monotempsource"), "#A9");
Assert.AreEqual (string.Empty, EventLog.LogNameFromSourceName ("monotempsource", "."), "#A10");
} finally {
if (!applicationLogExists) {
if (EventLog.Exists ("Application", "."))
EventLog.Delete ("Application", ".");
} else {
if (EventLog.SourceExists ("monotempsource", "."))
EventLog.DeleteEventSource ("monotempsource", ".");
}
}
try {
EventLog.WriteEntry ("monotempsource", "test",
EventLogEntryType.Information, 65536, 5);
Assert.Fail ("#B1");
} catch (ArgumentException ex) {
// Invalid eventID value '65536'. It must be in the range between '0' and '65535'.
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
Assert.IsNotNull (ex.Message, "#B3");
Assert.IsTrue (ex.Message.IndexOf ("'65536'") != -1, "#B4");
Assert.IsTrue (ex.Message.IndexOf ("'0'") != -1, "#B5");
Assert.IsTrue (ex.Message.IndexOf ("'65535'") != -1, "#B6");
Assert.IsNull (ex.InnerException, "#B7");
if (!applicationLogExists)
Assert.IsFalse (EventLog.Exists ("Application"), "#B8");
Assert.IsFalse (EventLog.SourceExists ("monotempsource"), "#B9");
Assert.AreEqual (string.Empty, EventLog.LogNameFromSourceName ("monotempsource", "."), "#B10");
} finally {
if (!applicationLogExists) {
if (EventLog.Exists ("Application", "."))
EventLog.Delete ("Application", ".");
} else {
if (EventLog.SourceExists ("monotempsource", "."))
EventLog.DeleteEventSource ("monotempsource", ".");
}
}
}
[Test]
public void WriteEntry9_Message_Empty ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
EventLog.WriteEntry ("monotempsource", string.Empty,
EventLogEntryType.Error, 56, 5);
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#A1");
Assert.IsNotNull (entry.Category, "#A2");
Assert.AreEqual ("(5)", entry.Category, "#A3");
Assert.AreEqual (5, entry.CategoryNumber, "#A4");
Assert.IsNotNull (entry.Data, "#A5");
Assert.AreEqual (0, entry.Data.Length, "#A6");
Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#A7");
Assert.AreEqual (56, entry.EventID, "#A8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#A9");
Assert.IsNotNull (entry.MachineName, "#A10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#A11");
Assert.IsNotNull (entry.ReplacementStrings, "#A12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#A13");
Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#A14");
Assert.IsNotNull (entry.Source, "#A15");
Assert.AreEqual ("monotempsource", entry.Source, "#A16");
Assert.IsNull (entry.UserName, "#A17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry9_Message_Null ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
EventLog.WriteEntry ("monotempsource", null,
EventLogEntryType.FailureAudit, 76, 8);
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#A1");
Assert.IsNotNull (entry.Category, "#A2");
Assert.AreEqual ("(8)", entry.Category, "#A3");
Assert.AreEqual (8, entry.CategoryNumber, "#A4");
Assert.IsNotNull (entry.Data, "#A5");
Assert.AreEqual (0, entry.Data.Length, "#A6");
Assert.AreEqual (EventLogEntryType.FailureAudit, entry.EntryType, "#A7");
Assert.AreEqual (76, entry.EventID, "#A8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#A9");
Assert.IsNotNull (entry.MachineName, "#A10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#A11");
Assert.IsNotNull (entry.ReplacementStrings, "#A12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#A13");
Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#A14");
Assert.IsNotNull (entry.Source, "#A15");
Assert.AreEqual ("monotempsource", entry.Source, "#A16");
Assert.IsNull (entry.UserName, "#A17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry9_Source_DoesNotExist ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
bool applicationLogExists = EventLog.Exists ("Application");
try {
EventLog.WriteEntry ("monotempsource", "test",
EventLogEntryType.SuccessAudit, 89, 3);
Assert.IsTrue (EventLog.Exists ("Application"), "#A1");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A2");
Assert.AreEqual ("Application", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A3");
if (EventLogImplType == WIN32_IMPL)
// win32 API does not return entries in order for
// Application log
return;
using (EventLog eventLog = new EventLog ("Application", ".", "monotempsource")) {
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(3)", entry.Category, "#B3");
Assert.AreEqual (3, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.SuccessAudit, entry.EntryType, "#B7");
Assert.AreEqual (89, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual ("test", entry.ReplacementStrings [0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
}
} finally {
if (!applicationLogExists) {
if (EventLog.Exists ("Application"))
EventLog.Delete ("Application");
} else {
if (EventLog.SourceExists ("monotempsource", "."))
EventLog.DeleteEventSource ("monotempsource", ".");
}
}
}
[Test]
[ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
public void WriteEntry9_Source_Empty ()
{
EventLog.WriteEntry (string.Empty, "test", EventLogEntryType.Warning,
5, 4);
}
[Test]
[ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
public void WriteEntry9_Source_Null ()
{
EventLog.WriteEntry (null, "test", EventLogEntryType.Error, 5, 4);
}
[Test]
[ExpectedException (typeof (InvalidEnumArgumentException))] // Enum argument value 666 is not valid for type. type should be a value from EventLogEntryType.
public void WriteEntry9_Type_NotDefined ()
{
EventLog.WriteEntry ("monotempsource", "test", (EventLogEntryType) 666, 4, 3);
}
[Test]
public void WriteEntry10 ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
byte [] data = new byte [] { 56, 55, 23, 24 };
EventLog.WriteEntry ("monotempsource", "WriteEntry9a",
EventLogEntryType.Information, 54, 5, data);
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(5)", entry.Category, "#B3");
Assert.AreEqual (5, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (data, entry.Data, "#B6");
Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#B7");
Assert.AreEqual (54, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual ("WriteEntry9a", entry.ReplacementStrings [0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
EventLog.WriteEntry ("monotempsource", "WriteEntry9b"
+ Environment.NewLine + "ok", EventLogEntryType.Error,
0, 0, new byte [0]);
entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#C1");
Assert.IsNotNull (entry.Category, "#C2");
Assert.AreEqual ("(0)", entry.Category, "#C3");
Assert.AreEqual (0, entry.CategoryNumber, "#C4");
Assert.IsNotNull (entry.Data, "#C5");
Assert.AreEqual (0, entry.Data.Length, "#C6");
Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#C7");
Assert.AreEqual (0, entry.EventID, "#C8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#C9");
Assert.IsNotNull (entry.MachineName, "#C10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#C11");
Assert.IsNotNull (entry.ReplacementStrings, "#C12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#C13");
Assert.AreEqual ("WriteEntry9b" + Environment.NewLine + "ok", entry.ReplacementStrings [0], "#C14");
Assert.IsNotNull (entry.Source, "#C15");
Assert.AreEqual ("monotempsource", entry.Source, "#C16");
Assert.IsNull (entry.UserName, "#C17");
EventLog.WriteEntry ("monotempsource", "WriteEntry9c"
+ Environment.NewLine + "ok", EventLogEntryType.Error,
ushort.MaxValue, short.MaxValue, null);
entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#D1");
Assert.IsNotNull (entry.Category, "#D2");
Assert.AreEqual ("(32767)", entry.Category, "#D3");
Assert.AreEqual (32767, entry.CategoryNumber, "#D4");
Assert.IsNotNull (entry.Data, "#D5");
Assert.AreEqual (0, entry.Data.Length, "#D6");
Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#D7");
Assert.AreEqual (ushort.MaxValue, entry.EventID, "#D8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#D9");
Assert.IsNotNull (entry.MachineName, "#D10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#D11");
Assert.IsNotNull (entry.ReplacementStrings, "#D12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#D13");
Assert.AreEqual ("WriteEntry9c" + Environment.NewLine + "ok", entry.ReplacementStrings [0], "#D14");
Assert.IsNotNull (entry.Source, "#D15");
Assert.AreEqual ("monotempsource", entry.Source, "#D16");
Assert.IsNull (entry.UserName, "#D17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry10_EventID_Invalid ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
bool applicationLogExists = EventLog.Exists ("Application", ".");
try {
EventLog.WriteEntry ("monotempsource", "test",
EventLogEntryType.Information, -1, 5, new byte[0]);
Assert.Fail ("#A1");
} catch (ArgumentException ex) {
// Invalid eventID value '-1'. It must be in the range between '0' and '65535'.
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
Assert.IsNotNull (ex.Message, "#A3");
Assert.IsTrue (ex.Message.IndexOf ("'-1'") != -1, "#A4");
Assert.IsTrue (ex.Message.IndexOf ("'0'") != -1, "#A5");
Assert.IsTrue (ex.Message.IndexOf ("'65535'") != -1, "#A6");
Assert.IsNull (ex.InnerException, "#A7");
if (!applicationLogExists)
Assert.IsFalse (EventLog.Exists ("Application"), "#A8");
Assert.IsFalse (EventLog.SourceExists ("monotempsource"), "#A9");
Assert.AreEqual (string.Empty, EventLog.LogNameFromSourceName ("monotempsource", "."), "#A10");
} finally {
if (!applicationLogExists) {
if (EventLog.Exists ("Application", "."))
EventLog.Delete ("Application", ".");
} else {
if (EventLog.SourceExists ("monotempsource", "."))
EventLog.DeleteEventSource ("monotempsource", ".");
}
}
try {
EventLog.WriteEntry ("monotempsource", "test",
EventLogEntryType.Information, 65536, 5, new byte[0]);
Assert.Fail ("#B1");
} catch (ArgumentException ex) {
// Invalid eventID value '65536'. It must be in the range between '0' and '65535'.
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
Assert.IsNotNull (ex.Message, "#B3");
Assert.IsTrue (ex.Message.IndexOf ("'65536'") != -1, "#B4");
Assert.IsTrue (ex.Message.IndexOf ("'0'") != -1, "#B5");
Assert.IsTrue (ex.Message.IndexOf ("'65535'") != -1, "#B6");
Assert.IsNull (ex.InnerException, "#B7");
if (!applicationLogExists)
Assert.IsFalse (EventLog.Exists ("Application"), "#B8");
Assert.IsFalse (EventLog.SourceExists ("monotempsource"), "#B9");
Assert.AreEqual (string.Empty, EventLog.LogNameFromSourceName ("monotempsource", "."), "#B10");
} finally {
if (!applicationLogExists) {
if (EventLog.Exists ("Application", "."))
EventLog.Delete ("Application", ".");
} else {
if (EventLog.SourceExists ("monotempsource", "."))
EventLog.DeleteEventSource ("monotempsource", ".");
}
}
}
[Test]
public void WriteEntry10_Message_Empty ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
EventLog.WriteEntry ("monotempsource", string.Empty,
EventLogEntryType.Error, 56, 5, new byte [0]);
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#A1");
Assert.IsNotNull (entry.Category, "#A2");
Assert.AreEqual ("(5)", entry.Category, "#A3");
Assert.AreEqual (5, entry.CategoryNumber, "#A4");
Assert.IsNotNull (entry.Data, "#A5");
Assert.AreEqual (0, entry.Data.Length, "#A6");
Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#A7");
Assert.AreEqual (56, entry.EventID, "#A8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#A9");
Assert.IsNotNull (entry.MachineName, "#A10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#A11");
Assert.IsNotNull (entry.ReplacementStrings, "#A12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#A13");
Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#A14");
Assert.IsNotNull (entry.Source, "#A15");
Assert.AreEqual ("monotempsource", entry.Source, "#A16");
Assert.IsNull (entry.UserName, "#A17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry10_Message_Null ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
EventLog.WriteEntry ("monotempsource", null,
EventLogEntryType.FailureAudit, 76, 8, new byte [0]);
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#A1");
Assert.IsNotNull (entry.Category, "#A2");
Assert.AreEqual ("(8)", entry.Category, "#A3");
Assert.AreEqual (8, entry.CategoryNumber, "#A4");
Assert.IsNotNull (entry.Data, "#A5");
Assert.AreEqual (0, entry.Data.Length, "#A6");
Assert.AreEqual (EventLogEntryType.FailureAudit, entry.EntryType, "#A7");
Assert.AreEqual (76, entry.EventID, "#A8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#A9");
Assert.IsNotNull (entry.MachineName, "#A10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#A11");
Assert.IsNotNull (entry.ReplacementStrings, "#A12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#A13");
Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#A14");
Assert.IsNotNull (entry.Source, "#A15");
Assert.AreEqual ("monotempsource", entry.Source, "#A16");
Assert.IsNull (entry.UserName, "#A17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEntry10_Source_DoesNotExist ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
bool applicationLogExists = EventLog.Exists ("Application");
try {
EventLog.WriteEntry ("monotempsource", "test",
EventLogEntryType.SuccessAudit, 89, 3, new byte [0]);
Assert.IsTrue (EventLog.Exists ("Application"), "#A1");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A2");
Assert.AreEqual ("Application", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A3");
if (EventLogImplType == WIN32_IMPL)
// win32 API does not return entries in order for
// Application log
return;
using (EventLog eventLog = new EventLog ("Application", ".", "monotempsource")) {
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(3)", entry.Category, "#B3");
Assert.AreEqual (3, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.SuccessAudit, entry.EntryType, "#B7");
Assert.AreEqual (89, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual ("test", entry.ReplacementStrings [0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
}
} finally {
if (!applicationLogExists) {
if (EventLog.Exists ("Application"))
EventLog.Delete ("Application");
} else {
if (EventLog.SourceExists ("monotempsource", "."))
EventLog.DeleteEventSource ("monotempsource", ".");
}
}
}
[Test]
[ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
public void WriteEntry10_Source_Empty ()
{
EventLog.WriteEntry (string.Empty, "test", EventLogEntryType.Warning,
5, 4, new byte [0]);
}
[Test]
[ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
public void WriteEntry10_Source_Null ()
{
EventLog.WriteEntry (null, "test", EventLogEntryType.Error, 5, 4,
new byte [0]);
}
[Test]
[ExpectedException (typeof (InvalidEnumArgumentException))] // Enum argument value 666 is not valid for type. type should be a value from EventLogEntryType.
public void WriteEntry10_Type_NotDefined ()
{
EventLog.WriteEntry ("monotempsource", "test", (EventLogEntryType) 666,
4, 3, new byte [0]);
}
[Test]
public void WriteEvent1 ()
{
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
EventInstance instance = new EventInstance (5, 666,
EventLogEntryType.FailureAudit);
eventLog.WriteEvent (instance, 5, "new" + Environment.NewLine + "line", true, null);
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.IsTrue (EventLog.SourceExists ("monologtemp"), "#A6");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A7");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(666)", entry.Category, "#B3");
Assert.AreEqual (666, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.FailureAudit, entry.EntryType, "#B7");
Assert.AreEqual (5, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (4, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual ("5", entry.ReplacementStrings [0], "#B14");
Assert.AreEqual ("new" + Environment.NewLine + "line", entry.ReplacementStrings [1], "#B15");
Assert.AreEqual (true.ToString (), entry.ReplacementStrings [2], "#B16");
Assert.AreEqual (string.Empty, entry.ReplacementStrings [3], "#B17");
Assert.IsNotNull (entry.Source, "#B18");
Assert.AreEqual ("monotempsource", entry.Source, "#B19");
Assert.IsNull (entry.UserName, "#B20");
eventLog.WriteEvent (instance);
entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#C1");
Assert.IsNotNull (entry.Category, "#C2");
Assert.AreEqual ("(666)", entry.Category, "#C3");
Assert.AreEqual (666, entry.CategoryNumber, "#C4");
Assert.IsNotNull (entry.Data, "#C5");
Assert.AreEqual (0, entry.Data.Length, "#C6");
Assert.AreEqual (EventLogEntryType.FailureAudit, entry.EntryType, "#C7");
Assert.AreEqual (5, entry.EventID, "#C8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#C9");
Assert.IsNotNull (entry.MachineName, "#C10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#C11");
Assert.IsNotNull (entry.ReplacementStrings, "#C12");
Assert.AreEqual (0, entry.ReplacementStrings.Length, "#C13");
Assert.IsNotNull (entry.Source, "#C14");
Assert.AreEqual ("monotempsource", entry.Source, "#C15");
Assert.IsNull (entry.UserName, "#C16");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
[ExpectedException (typeof (ArgumentNullException))]
public void WriteEvent1_Instance_Null ()
{
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
eventLog.WriteEvent (null, "replace");
}
}
[Test]
[ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
public void WriteEvent1_Source_Empty ()
{
using (EventLog eventLog = new EventLog ("monologtemp")) {
EventInstance instance = new EventInstance (5, 1,
EventLogEntryType.Information);
eventLog.WriteEvent (instance, "replace");
}
}
[Test]
public void WriteEvent1_Source_DoesNotExist ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.SourceExists ("monoothersource", "."))
Assert.Ignore ("Event log source 'monoothersource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monoothersource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
EventInstance instance = new EventInstance (5, 1,
EventLogEntryType.Error);
eventLog.WriteEvent (instance, "replace1", "replace2");
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
EventLogEntry entry = eventLog.Entries[eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(1)", entry.Category, "#B3");
Assert.AreEqual (1, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#B7");
Assert.AreEqual (5, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (2, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual ("replace1", entry.ReplacementStrings[0], "#B14");
Assert.AreEqual ("replace2", entry.ReplacementStrings [1], "#B15");
Assert.IsNotNull (entry.Source, "#B16");
Assert.AreEqual ("monotempsource", entry.Source, "#B17");
Assert.IsNull (entry.UserName, "#B18");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEvent1_Values_Null ()
{
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
EventInstance instance = new EventInstance (5, 666,
EventLogEntryType.Warning);
eventLog.WriteEvent (instance, (object) null);
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.IsTrue (EventLog.SourceExists ("monologtemp"), "#A6");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A7");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(666)", entry.Category, "#B3");
Assert.AreEqual (666, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.Warning, entry.EntryType, "#B7");
Assert.AreEqual (5, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEvent2 ()
{
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
byte [] data = new byte [] { 23, 54 };
EventInstance instance = new EventInstance (5, 666,
EventLogEntryType.FailureAudit);
eventLog.WriteEvent (instance, data, 5, "new" + Environment.NewLine + "line", true, null);
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.IsTrue (EventLog.SourceExists ("monologtemp"), "#A6");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A7");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(666)", entry.Category, "#B3");
Assert.AreEqual (666, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (data, entry.Data, "#B6");
Assert.AreEqual (EventLogEntryType.FailureAudit, entry.EntryType, "#B7");
Assert.AreEqual (5, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (4, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual ("5", entry.ReplacementStrings [0], "#B14");
Assert.AreEqual ("new" + Environment.NewLine + "line", entry.ReplacementStrings [1], "#B15");
Assert.AreEqual (true.ToString (), entry.ReplacementStrings [2], "#B16");
Assert.AreEqual (string.Empty, entry.ReplacementStrings [3], "#B17");
Assert.IsNotNull (entry.Source, "#B18");
Assert.AreEqual ("monotempsource", entry.Source, "#B19");
Assert.IsNull (entry.UserName, "#B20");
eventLog.WriteEvent (instance, data);
entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#C1");
Assert.IsNotNull (entry.Category, "#C2");
Assert.AreEqual ("(666)", entry.Category, "#C3");
Assert.AreEqual (666, entry.CategoryNumber, "#C4");
Assert.IsNotNull (entry.Data, "#C5");
Assert.AreEqual (data, entry.Data, "#C6");
Assert.AreEqual (EventLogEntryType.FailureAudit, entry.EntryType, "#C7");
Assert.AreEqual (5, entry.EventID, "#C8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#C9");
Assert.IsNotNull (entry.MachineName, "#C10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#C11");
Assert.IsNotNull (entry.ReplacementStrings, "#C12");
Assert.AreEqual (0, entry.ReplacementStrings.Length, "#C13");
Assert.IsNotNull (entry.Source, "#C14");
Assert.AreEqual ("monotempsource", entry.Source, "#C15");
Assert.IsNull (entry.UserName, "#C16");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEvent2_Data_Null ()
{
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
EventInstance instance = new EventInstance (5, 444,
EventLogEntryType.Warning);
eventLog.WriteEvent (instance, null, "replace1", null, "replace3");
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.IsTrue (EventLog.SourceExists ("monologtemp"), "#A6");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A7");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(444)", entry.Category, "#B3");
Assert.AreEqual (444, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.Warning, entry.EntryType, "#B7");
Assert.AreEqual (5, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (3, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual ("replace1", entry.ReplacementStrings [0], "#B14");
Assert.AreEqual (string.Empty, entry.ReplacementStrings [1], "#B15");
Assert.AreEqual ("replace3", entry.ReplacementStrings [2], "#B16");
Assert.IsNotNull (entry.Source, "#B17");
Assert.AreEqual ("monotempsource", entry.Source, "#B18");
Assert.IsNull (entry.UserName, "#B19");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
[ExpectedException (typeof (ArgumentNullException))]
public void WriteEvent2_Instance_Null ()
{
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
eventLog.WriteEvent (null, new byte [0], "replace");
}
}
[Test]
[ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
public void WriteEvent2_Source_Empty ()
{
using (EventLog eventLog = new EventLog ("monologtemp")) {
EventInstance instance = new EventInstance (5, 1,
EventLogEntryType.Information);
eventLog.WriteEvent (instance, new byte [0], "replace");
}
}
[Test]
public void WriteEvent2_Source_DoesNotExist ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.SourceExists ("monoothersource", "."))
Assert.Ignore ("Event log source 'monoothersource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monoothersource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
byte [] data = new byte [] { 23, 54 };
EventInstance instance = new EventInstance (5, 1,
EventLogEntryType.Error);
eventLog.WriteEvent (instance, data, "replace1", "replace2");
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.IsTrue (EventLog.SourceExists ("monologtemp"), "#A6");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A7");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(1)", entry.Category, "#B3");
Assert.AreEqual (1, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (data, entry.Data, "#B6");
Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#B7");
Assert.AreEqual (5, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (2, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual ("replace1", entry.ReplacementStrings [0], "#B14");
Assert.AreEqual ("replace2", entry.ReplacementStrings [1], "#B15");
Assert.IsNotNull (entry.Source, "#B16");
Assert.AreEqual ("monotempsource", entry.Source, "#B17");
Assert.IsNull (entry.UserName, "#B18");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEvent2_Values_Null ()
{
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
byte [] data = new byte [] { 23, 54 };
EventInstance instance = new EventInstance (5, 556,
EventLogEntryType.Warning);
eventLog.WriteEvent (instance, data, (object) null);
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.IsTrue (EventLog.SourceExists ("monologtemp"), "#A6");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A7");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(556)", entry.Category, "#B3");
Assert.AreEqual (556, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (data, entry.Data, "#B6");
Assert.AreEqual (EventLogEntryType.Warning, entry.EntryType, "#B7");
Assert.AreEqual (5, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.IsNotNull (entry.Source, "#B14");
Assert.AreEqual ("monotempsource", entry.Source, "#B15");
Assert.IsNull (entry.UserName, "#B16");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEvent3 ()
{
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
EventInstance instance = new EventInstance (5, 666,
EventLogEntryType.FailureAudit);
EventLog.WriteEvent ("monotempsource", instance, 5, "new"
+ Environment.NewLine + "line", true, null);
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.IsTrue (EventLog.SourceExists ("monologtemp"), "#A6");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A7");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(666)", entry.Category, "#B3");
Assert.AreEqual (666, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.FailureAudit, entry.EntryType, "#B7");
Assert.AreEqual (5, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (4, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual ("5", entry.ReplacementStrings [0], "#B14");
Assert.AreEqual ("new" + Environment.NewLine + "line", entry.ReplacementStrings [1], "#B15");
Assert.AreEqual (true.ToString (), entry.ReplacementStrings [2], "#B16");
Assert.AreEqual (string.Empty, entry.ReplacementStrings [3], "#B17");
Assert.IsNotNull (entry.Source, "#B18");
Assert.AreEqual ("monotempsource", entry.Source, "#B19");
Assert.IsNull (entry.UserName, "#B20");
EventLog.WriteEvent ("monotempsource", instance);
entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#C1");
Assert.IsNotNull (entry.Category, "#C2");
Assert.AreEqual ("(666)", entry.Category, "#C3");
Assert.AreEqual (666, entry.CategoryNumber, "#C4");
Assert.IsNotNull (entry.Data, "#C5");
Assert.AreEqual (0, entry.Data.Length, "#C6");
Assert.AreEqual (EventLogEntryType.FailureAudit, entry.EntryType, "#C7");
Assert.AreEqual (5, entry.EventID, "#C8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#C9");
Assert.IsNotNull (entry.MachineName, "#C10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#C11");
Assert.IsNotNull (entry.ReplacementStrings, "#C12");
Assert.AreEqual (0, entry.ReplacementStrings.Length, "#C13");
Assert.IsNotNull (entry.Source, "#C14");
Assert.AreEqual ("monotempsource", entry.Source, "#C15");
Assert.IsNull (entry.UserName, "#C16");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
[ExpectedException (typeof (ArgumentNullException))]
public void WriteEvent3_Instance_Null ()
{
EventLog.WriteEvent ("monotempsource", null);
}
[Test]
[ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
public void WriteEvent3_Source_Empty ()
{
EventInstance instance = new EventInstance (5, 1,
EventLogEntryType.Information);
EventLog.WriteEvent (string.Empty, instance);
}
[Test]
public void WriteEvent3_Source_DoesNotExist ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
bool applicationLogExists = EventLog.Exists ("Application");
try {
EventInstance instance = new EventInstance (666, 1,
EventLogEntryType.Error);
EventLog.WriteEvent ("monotempsource", instance, "replace1", "replace2");
Assert.IsTrue (EventLog.Exists ("Application"), "#A1");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A2");
Assert.AreEqual ("Application", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A3");
if (EventLogImplType == WIN32_IMPL)
// win32 API does not return entries in order for
// Application log
return;
using (EventLog eventLog = new EventLog ("Application", ".", "monotempsource")) {
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(1)", entry.Category, "#B3");
Assert.AreEqual (1, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#B7");
Assert.AreEqual (666, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (2, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual ("replace1", entry.ReplacementStrings [0], "#B14");
Assert.AreEqual ("replace2", entry.ReplacementStrings [1], "#B15");
Assert.IsNotNull (entry.Source, "#B16");
Assert.AreEqual ("monotempsource", entry.Source, "#B17");
Assert.IsNull (entry.UserName, "#B18");
}
} finally {
if (!applicationLogExists) {
if (EventLog.Exists ("Application"))
EventLog.Delete ("Application");
} else {
if (EventLog.SourceExists ("monotempsource", "."))
EventLog.DeleteEventSource ("monotempsource", ".");
}
}
}
[Test]
public void WriteEvent3_Values_Null ()
{
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
EventInstance instance = new EventInstance (5, 666,
EventLogEntryType.Warning);
EventLog.WriteEvent ("monotempsource", instance, (object) null);
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.IsTrue (EventLog.SourceExists ("monologtemp"), "#A6");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A7");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(666)", entry.Category, "#B3");
Assert.AreEqual (666, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.Warning, entry.EntryType, "#B7");
Assert.AreEqual (5, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEvent4 ()
{
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
byte [] data = new byte [] { 23, 54 };
EventInstance instance = new EventInstance (5, 666,
EventLogEntryType.FailureAudit);
EventLog.WriteEvent ("monotempsource", instance, data, 5, "new"
+ Environment.NewLine + "line", true, null);
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.IsTrue (EventLog.SourceExists ("monologtemp"), "#A6");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A7");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(666)", entry.Category, "#B3");
Assert.AreEqual (666, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (data, entry.Data, "#B6");
Assert.AreEqual (EventLogEntryType.FailureAudit, entry.EntryType, "#B7");
Assert.AreEqual (5, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (4, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual ("5", entry.ReplacementStrings [0], "#B14");
Assert.AreEqual ("new" + Environment.NewLine + "line", entry.ReplacementStrings [1], "#B15");
Assert.AreEqual (true.ToString (), entry.ReplacementStrings [2], "#B16");
Assert.AreEqual (string.Empty, entry.ReplacementStrings [3], "#B17");
Assert.IsNotNull (entry.Source, "#B18");
Assert.AreEqual ("monotempsource", entry.Source, "#B19");
Assert.IsNull (entry.UserName, "#B20");
EventLog.WriteEvent ("monotempsource", instance, data);
entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#C1");
Assert.IsNotNull (entry.Category, "#C2");
Assert.AreEqual ("(666)", entry.Category, "#C3");
Assert.AreEqual (666, entry.CategoryNumber, "#C4");
Assert.IsNotNull (entry.Data, "#C5");
Assert.AreEqual (data, entry.Data, "#C6");
Assert.AreEqual (EventLogEntryType.FailureAudit, entry.EntryType, "#C7");
Assert.AreEqual (5, entry.EventID, "#C8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#C9");
Assert.IsNotNull (entry.MachineName, "#C10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#C11");
Assert.IsNotNull (entry.ReplacementStrings, "#C12");
Assert.AreEqual (0, entry.ReplacementStrings.Length, "#C13");
Assert.IsNotNull (entry.Source, "#C14");
Assert.AreEqual ("monotempsource", entry.Source, "#C15");
Assert.IsNull (entry.UserName, "#C16");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
public void WriteEvent4_Data_Null ()
{
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
EventInstance instance = new EventInstance (5, 444,
EventLogEntryType.Warning);
EventLog.WriteEvent ("monotempsource", instance, null, "replace1", null, "replace3");
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.IsTrue (EventLog.SourceExists ("monologtemp"), "#A6");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A7");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(444)", entry.Category, "#B3");
Assert.AreEqual (444, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (0, entry.Data.Length, "#B6");
Assert.AreEqual (EventLogEntryType.Warning, entry.EntryType, "#B7");
Assert.AreEqual (5, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (3, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual ("replace1", entry.ReplacementStrings [0], "#B14");
Assert.AreEqual (string.Empty, entry.ReplacementStrings [1], "#B15");
Assert.AreEqual ("replace3", entry.ReplacementStrings [2], "#B16");
Assert.IsNotNull (entry.Source, "#B17");
Assert.AreEqual ("monotempsource", entry.Source, "#B18");
Assert.IsNull (entry.UserName, "#B19");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
[Test]
[ExpectedException (typeof (ArgumentNullException))]
public void WriteEvent4_Instance_Null ()
{
EventLog.WriteEvent ("monotempsource", null, new byte [0]);
}
[Test]
[ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
public void WriteEvent4_Source_Empty ()
{
EventInstance instance = new EventInstance (5, 1,
EventLogEntryType.Information);
EventLog.WriteEvent (string.Empty, instance, new byte [0]);
}
[Test]
public void WriteEvent4_Source_DoesNotExist ()
{
if (EventLogImplType == NULL_IMPL)
// test cannot pass with NULL implementation
Assert.Ignore ("No EventLogImplType.");
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
bool applicationLogExists = EventLog.Exists ("Application");
try {
byte [] data = new byte [] { 23, 54 };
EventInstance instance = new EventInstance (666, 1,
EventLogEntryType.Error);
EventLog.WriteEvent ("monotempsource", instance, data, "replace1", "replace2");
Assert.IsTrue (EventLog.Exists ("Application"), "#A1");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A2");
Assert.AreEqual ("Application", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A3");
if (EventLogImplType == WIN32_IMPL)
// win32 API does not return entries in order for
// Application log
return;
using (EventLog eventLog = new EventLog ("Application", ".", "monotempsource")) {
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(1)", entry.Category, "#B3");
Assert.AreEqual (1, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (data, entry.Data, "#B6");
Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#B7");
Assert.AreEqual (666, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (2, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual ("replace1", entry.ReplacementStrings [0], "#B14");
Assert.AreEqual ("replace2", entry.ReplacementStrings [1], "#B15");
Assert.IsNotNull (entry.Source, "#B16");
Assert.AreEqual ("monotempsource", entry.Source, "#B17");
Assert.IsNull (entry.UserName, "#B18");
}
} finally {
if (!applicationLogExists) {
if (EventLog.Exists ("Application"))
EventLog.Delete ("Application");
} else {
if (EventLog.SourceExists ("monotempsource", "."))
EventLog.DeleteEventSource ("monotempsource", ".");
}
}
}
[Test]
public void WriteEvent4_Values_Null ()
{
if (EventLog.SourceExists ("monotempsource", "."))
Assert.Ignore ("Event log source 'monotempsource' should not exist.");
if (EventLog.Exists ("monologtemp", "."))
Assert.Ignore ("Event log 'monologtemp' should not exist.");
EventLog.CreateEventSource ("monotempsource", "monologtemp");
try {
byte [] data = new byte [] { 23, 54 };
EventInstance instance = new EventInstance (5, 666,
EventLogEntryType.Warning);
EventLog.WriteEvent ("monotempsource", instance, data, (object) null);
using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
// MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
Assert.IsTrue (EventLog.SourceExists ("monologtemp"), "#A6");
Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A7");
EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
Assert.IsNotNull (entry, "#B1");
Assert.IsNotNull (entry.Category, "#B2");
Assert.AreEqual ("(666)", entry.Category, "#B3");
Assert.AreEqual (666, entry.CategoryNumber, "#B4");
Assert.IsNotNull (entry.Data, "#B5");
Assert.AreEqual (data, entry.Data, "#B6");
Assert.AreEqual (EventLogEntryType.Warning, entry.EntryType, "#B7");
Assert.AreEqual (5, entry.EventID, "#B8");
Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
Assert.IsNotNull (entry.MachineName, "#B10");
Assert.AreEqual (Environment.MachineName.ToUpper(), entry.MachineName.ToUpper(), "#B11");
Assert.IsNotNull (entry.ReplacementStrings, "#B12");
Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#B14");
Assert.IsNotNull (entry.Source, "#B15");
Assert.AreEqual ("monotempsource", entry.Source, "#B16");
Assert.IsNull (entry.UserName, "#B17");
}
} finally {
if (EventLog.Exists ("monologtemp"))
EventLog.Delete ("monologtemp");
}
}
private static RegistryKey EventLogKey {
get {
return Registry.LocalMachine.OpenSubKey (@"SYSTEM\CurrentControlSet\Services\EventLog", true);
}
}
private static RegistryKey FindLogKeyByName (string logName)
{
RegistryKey eventLogKey = null;
try {
eventLogKey = EventLogKey;
if (eventLogKey == null)
Assert.Fail ("Event log key does not exist");
RegistryKey logKey = eventLogKey.OpenSubKey (logName, true);
if (logKey != null)
return logKey;
return null;
} finally {
if (eventLogKey != null)
eventLogKey.Close ();
}
}
private static RegistryKey FindSourceKeyByName (string source) {
RegistryKey eventLogKey = null;
try {
eventLogKey = EventLogKey;
if (eventLogKey == null)
Assert.Fail ("Event log key does not exist");
string[] subKeys = eventLogKey.GetSubKeyNames ();
for (int i = 0; i < subKeys.Length; i++) {
using (RegistryKey logKey = eventLogKey.OpenSubKey (subKeys[i], true)) {
if (logKey != null) {
RegistryKey sourceKey = logKey.OpenSubKey (source, true);
if (sourceKey != null)
return sourceKey;
}
}
}
return null;
} finally {
if (eventLogKey != null)
eventLogKey.Close ();
}
}
private static bool Win32EventLogEnabled {
get {
return (Environment.OSVersion.Platform == PlatformID.Win32NT);
}
}
// IMPORTANT: keep this in sync with System.Diagnostics.EventLog.EventLogImplType
private static string EventLogImplType {
get {
string implType = Environment.GetEnvironmentVariable (EVENTLOG_TYPE_VAR);
if (implType == null) {
if (Win32EventLogEnabled)
return WIN32_IMPL;
implType = NULL_IMPL;
} else {
if (Win32EventLogEnabled && string.Compare (implType, WIN32_IMPL, true) == 0)
implType = WIN32_IMPL;
else if (string.Compare (implType, NULL_IMPL, true) == 0)
implType = NULL_IMPL;
else if (string.Compare (implType, 0, LOCAL_FILE_IMPL, 0, LOCAL_FILE_IMPL.Length, true) == 0)
implType = LOCAL_FILE_IMPL;
else
throw new NotSupportedException (string.Format (
CultureInfo.InvariantCulture, "Eventlog implementation"
+ " '{0}' is not supported.", implType));
}
return implType;
}
}
}
}
#endif