Skip to content

Instantly share code, notes, and snippets.

@AlexZeitler
Created February 21, 2011 14:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AlexZeitler/837084 to your computer and use it in GitHub Desktop.
Save AlexZeitler/837084 to your computer and use it in GitHub Desktop.
Why does this always fail?
using System;
using SolidWorks.Interop.sldworks;
using Xunit;
namespace SolidTp.SolidWorks.Domain.Tests {
[Concern(typeof (IEquationManagerWriter))]
public class Wenn_eine_variablendefinition_im_modell_aktualisiert_werden_soll_ : InstanceContextSpecification<IEquationManagerWriter> {
private string _variableDefinitionAsEquation;
protected override void EstablishContext() {
The<IEquationMgr>().Equation[0] = "\"A11\"=10 ' Schneidendurchmesser";
The<IEquationMgr>().WhenToldTo(eqm => eqm.GetCount()).Return(1);
_variableDefinitionAsEquation = "\"A11\"=12 ' Schneidendurchmesser";
The<IVariableDefinition>().WhenToldTo(vd=>vd.AsEquation()).Return(_variableDefinitionAsEquation);
}
protected override IEquationManagerWriter CreateSut() {
return new EquationManagerWriter(The<IEquationMgr>());
}
protected override void Because() {
Sut.InsertOrUpdate(The<IVariableDefinition>());
}
[Observation]
public void Sollte_die_gleichung_im_modell_die_neuen_informationen_enthalten() {
The<IEquationMgr>().WasToldTo(mgr=>mgr.Equation[0] = _variableDefinitionAsEquation);
}
}
public class EquationManagerWriter : IEquationManagerWriter {
private readonly IEquationMgr _equationManager;
public EquationManagerWriter(IEquationMgr equationManager) {
_equationManager = equationManager;
}
public void InsertOrUpdate(IVariableDefinition variableDefinition) {
int equationCount = _equationManager.GetCount();
IEquationParser equationParser = new EquationParser();
for (int i = 0; i < equationCount; i++) {
if(null != equationParser.ParseVariableDefinition(_equationManager.Equation[i])) {
_equationManager.Equation[i] = variableDefinition.AsEquation();
break;
}
}
}
}
public interface IEquationManagerWriter {
void InsertOrUpdate(IVariableDefinition variableDefinition);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment