Italo Guerrieri Italo Guerrieri - 10 February, 2021 - 4 ’ read

​​Imagicle contribution to Open Source: WireMock.GUI.

For some time now, in the R&D team, we’ve been wondering: “How can we return the favor to the open source community?” I am Italo, Software Engineer for the Imagicle headquarter in Treviso, and I will explain to you all how we have shaped the Imagicle contribution to the open source world.

As the R&D team, we asked ourselves: “how can we contribute to the open source community?” Moreover, we wanted to have the opportunity to show other developers how we develop our own software, in hopes that they would be intrigued enough to consider working with us in Imagicle slightly smiling face 

Speaking of it, I remind you that we currently have open positions in the R&D team. Click here for more info!

As we were thinking about the subject of this article,
WireMock.GUI came to mind: an internal tool ready to be released as an open source code.

WireMock.GUI is one of our internal tools, born in conjunction with Cloud Licensing. 

All our teams, both those working on the Cloud and those working on the Imagicle UC Suite, were involved in its development
We defined the REST API set together, then we started working on the actual development. 
While we were working for the team that was developing the Imagicle UC Suite, we found ourselves finishing the development and not being able to test it in our technical reviews. That happened because the cloud-side implementation was not ready, and it wouldn’t be ready before our 2019.Summer.1 release.
What’s more is that, even if it had been ready, we couldn’t have tested corner cases such as “cloud unavailable”.
So, WireMock.GUI was born out of necessity as a tool for developers based on WireMock.Net, a library that we used for the first time precisely when we were developing the Cloud Licensing for our automatic tests. 
Automatic tests? Yes, we are stubborn enough to practice pure TDD.  slightly smiling face 
Curious about TDD? Here’s an article written by my colleague Riccardo that will explain it all!
Back to our tests, we needed a way to test the integration of our Imagicle UC suite with our cloud. But how? 
We needed something to simulate and control the behavior of our cloud and WireMock.Net was just what we needed because it’s a library that allows you to mock the behavior of a web server. 

 

Alright, but what makes WireMock.GUI different?

Precisely the GUI! slightly smiling face In fact, you can tell that our UI/UX designers haven’t contributed to its development… yet.
WireMock.GUI User Interface
When started, the server will listen on the localhost on port 12345. 
From the GUI, you can define a series of web methods of the web server you are mocking. In the example above, a web method has been configured so that if a request in GET is made to the following test resource: http://localhost:12345/test, a JSON with the following content is returned as a response body:
 

JSON as a response body - server mock

 

 

 

Here is a sequence diagram to summarize the interaction with the mock server 

sequence diagram summarizing the interaction with the mock server

 

 

 

 

Despite the fact that WireMock.GUI is an internal tool, it was written in TDD.

 
 

Conclusions.

WireMock.GUI is a tool that we have developed concurrently with our main activities and that can still be significantly improved. So, if you have problems or if you would like new features, you can contact us directly on GitHub, where can also find the WireMock.GUI executable ready to be tried out.
WireMock.GUI represents our first experience in the open source world… The first of many, we hope!  slightly smiling face 
 
Do you also have experience in the world of open source? What do you think? Feel free to leave a comment!

0 Comments

You might also be interested in…

  • Release Blog
    Call Rec boost: from 180 to 500 recordings on the same server.
    Leveraging all the hardware space with the same performance level, enabling 500 simultaneous recordings.
  • Tech Specs Blog
    Three more bites to Imagicle’s Design For People process.
    Imagicle UX Greta tells about three steps of the Exploration phase of UX software design for people: Brainstorming & sketches, Wireframing, Prototyping. Discover a reliable and programmatic way to understand the needs, aspirations, and emotional touchpoints of customers and users.
  • Tech Specs Blog
    6 Key benefits of Open Source Software for Cloud-native development.
    Open Source or proprietary software? Here are my 6 reasons why making a decision for Open Source software is a good choice in many cases.
Keep an eye on the Imagicle world.
Get some free, happy content and stay up to date.